[c#]c#并发编程-异步编程基础-报告进度

author author     2022-08-23     614

关键词:

 1     int ProgressRate = 0;
 2 
 3     private async void btnProgress_Click(object sender, EventArgs e)
 4     {
 5         ProgressRate = 0;
 6 
 7         var progress = new Progress<int>();
 8 
 9         //progress的进度改变
10         progress.ProgressChanged += (obj1, obj2) =>
11         {
12             if (ProgressRate <= 100)
13             {
14                 this.lblProgress.Content = ProgressRate.ToString() + "%";
15                 this.pbProgress.Value = ProgressRate;
16             }
17             else
18             {
19                 this.btnProgress.IsEnabled = true;
20             }
21 
22         };
23 
24         this.btnProgress.IsEnabled = false;
25         await ReportProgressAsync(progress);
26     }
27 
28     //在此报告progress的进度,更改ProgressRate的值
29     private async Task ReportProgressAsync(IProgress<int> progress = null)
30     {
31         while (ProgressRate <= 100)
32         {
33             if (progress != null)
34             {
35                 await Task.Delay(TimeSpan.FromMilliseconds(100));
36                 progress.Report(ProgressRate++);
37             }
38         }
39     }

结果:

技术分享

c#异步编程基础入门总结

1.前言*.NETFramework提供了执行异步操作的三种模式:异步编程模型(APM)模式(也称为IAsyncResult的模式),其中异步操作要求Begin和End方法(例如,BeginWrite和EndWrite异步写入操作)。这种模式不再被推荐用于新开发。有关更多信息... 查看详情

c#异步编程----thread(代码片段)

...作系统进行分时间片管理。这样,宏观角度来说是多线程并发 ,看起来是同一时刻执行了不同的操作。但是从微观角度来讲,同一时刻只能有一个线程在处理。  2、目前电脑都是多核多CPU的,一个CPU在同一时刻只能运行... 查看详情

c#异步编程

什么是异步编程什么是异步编程呢?举个简单的例子:usingSystem.Net.Http;usingSystem.Threading.Tasks;usingstaticSystem.Console;namespaceCore{classAsync{staticvoidMain(){Start();End();}staticvoidWait()=>WriteLine("waiting...") 查看详情

[c#]异步编程-剖析异步方法

剖析异步方法序  这是上篇《开始接触async/await异步编程》(入门)的第二章内容,主要是深入了解异步方法,建议大家先看入门篇,很短。  本文要求了解委托的使用。 目录 介绍异步方法   异步方法:... 查看详情

c#异步编程一

 前几天把CodeFirst系列总结完,想着下步总结什么,原本想着XML,不过XML的内容比较多,还有3天班就中秋节了,想在中秋节前在完成一个系列,所以决定把异步这块总结下。说起异步可能会认为就是多线程,其实并不是这样,多... 查看详情

[c#]走进异步编程的世界-剖析异步方法(下)

走进异步编程的世界-剖析异步方法(下)序  感谢大家的支持,这是昨天发布《走进异步编程的世界-剖析异步方法(上)》的补充篇。 目录异常处理在调用方法中同步等待任务在异步方法中异步等待任务使用Task.Delay()暂... 查看详情

c#异步编程(代码片段)

1staticvoidMain(string[]args)23Console.WriteLine("方法开始:"+DateTime.Now.ToString("yyyy-MM-ddhh:MM:ss"));4varstrRes=Task.Run(()=>returnReturnStr(););5Console.WriteLine("方法结束:"+DateTime.Now.ToString 查看详情

c#如何使用异步编程

   怎么使用异步,就是用委托进行处理,如果委托对象在调用列表中只有一个方法,它就可以异步执行这个方法。委托类有两个方法,叫做BeginInvoke和EndInvoke,它们是用来异步执行使用。异步有三种模式等待模式,在... 查看详情

c#高级编程(第10版)高清中文版

...讨了VisualStudio2013和.netframework4.5.1、新的测试驱动开发和并发编程功能。所有示例的都可以下载,读者可以立即开始编写Windows桌面应用程序、WindowsStore应用程序和ASP.NETWeb应用程序。需要的朋友们可以下载试试吧!本书以最新的.NE... 查看详情

c#中异步编程多个异常的处理方式(代码片段)

异步编程异常处理在同步编程中,一旦出现错误就会抛出异常,我们可以使用try…catch来捕捉异常,未被捕获的异常则会不断向上传递,形成一个简单而统一的错误处理机制。但是对于异步编程来说,异常处理一直是件麻烦的事... 查看详情

c#异步编程

1.await例如有一个静态方法m,要在程序中异步调用这个方法,就在此方法前加关键字await,那么当程序运行到这条语句时,会立即返回包含这条语句的方法,并异步执行m方法,这样ui线程就不会被占用,然后当m方法执行结束后会再次返回这... 查看详情

c#中委托实现的异步编程

所谓同步:如果在代码中调用了一个方法,则必须等待该方法所有的代码执行完毕之后,才能回到原来的地方执行下一行代码。异步:如果不等待调用的方法执行完,就执行下一行代码。1.0同步例子:1classProgram2{3privatestaticintCalc... 查看详情

[c#]开始接触async/await异步编程

开始接触async/await异步编程序  之前已经整理了4篇关于LINQ的随笔,想换换口味。 目录What‘s异步?async/await结构What’s异步方法? 一、What‘s异步?   启动程序时,系统会在内存中创建一个新的进程。进... 查看详情

c#如何使用异步编程begininvoke/endinvoke

怎么使用异步,就是用委托进行处理,如果委托对象在调用列表中只有一个方法,它就可以异步执行这个方法。委托类有两个方法,叫做BeginInvoke和EndInvoke,它们是用来异步执行使用。异步有三种模式等待模式,在发起了异步方... 查看详情

c#教程

C#教程C#是一个简单的、现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的。本教程将告诉您基础的C#编程,同时QKXue.NET将向您讲解C#编程语言相关的各种先进理念。现在开始学习C#!C#在线工具谁适合阅读本教... 查看详情

让我们再为c#异步编程async正名

...:http://www.cnblogs.com/tdws半年前翻译了一系列很糟糕的异步编程文章,用异步的常用语来说:”在将来的某个时间“我还会重新翻译AsyncinC#5.0 http://www.cnblogs.com/tdws/p/5617242.html 写在前面      查看详情

并发编程简介

读【C#并发编程经典实例.PDF】一书总结:1、并发:同时做多件事。2、多线程:并发的一种形式,它采用多个线程来执行程序。所以多线程只是实现并发的一种方法,并发不等于多线程。3、并行处理:把正在执行的大量任务分隔... 查看详情

如何在 Sharepoint 的 c# 非可视 Web 部件中以编程方式创建进度更新控件

】如何在Sharepoint的c#非可视Web部件中以编程方式创建进度更新控件【英文标题】:Howtocreateprogressupdatecontrolprogramaticallyinc#nonvisualwebpartinSharepoint【发布时间】:2013-01-1415:25:32【问题描述】:?我正在使用c#,目标是在ProgressUpdate控... 查看详情