异步编程基础
>>返回《C# 并发编程》 1. 概述 2. 报告进度 3. 等待一组任务完成 4. 异常处理 5. 等待任意一个任务完成 6. 避免上下文延续 7. async void 1. 概述 前面的文章介绍了标识了 async 和 await 的代码,是怎么被线程执行的。 >>同步上下文-7.5 异步编程(Async) 下面介绍一些 类库 和常用的 API 。 2. 报告进度 使用 IProgress<T> 和 Progress<T> 类型 构造 Progress<T> 实例时捕获当前 同步上下文 实例; Progress<T> 实例的 ProgressChanged 事件被调用时使用上面捕获的 同步上下文 ; 如果在执行构造函数的线程没有同步上下文时(隐含使用的Default同步上下文),则将在 ThreadPool 中调用事件 static async Task DoProgressAsync(int count, IProgress<int> progress = null) { for (int i = 0; i < count; i++) { await Task.Delay(200); if (progress != null) progress.Report(i + 1); } } static async Task CallProgressAsync() { int