12 2017 档案

摘要:本示例学习使用await来获取异步操作结果时,同步上下文行为的结节,并如何在何时关闭同步上下文流。 默认情况下,await操作符会尝试捕获同步上下文,并在其中执行代码。使用await操作符不会发生死锁的情况,因为当等待结果时并不会阻塞UI线程。 阅读全文
posted @ 2017-12-27 10:16 DotNet菜园 阅读(2001) 评论(1) 推荐(1)
摘要:本示例学习如何阅读有多个await方法方法时,程序的实际流程是怎么样的,理解await的异步调用 。 阅读全文
posted @ 2017-12-21 14:49 DotNet菜园 阅读(1893) 评论(1) 推荐(3)
摘要:通过前面的文章,已经学习了怎么使用线程,怎么使用线程同步,怎么使用线程池,怎么使用任务并行库。尽管通过上面的学习,对于线程的使用越来越简单。有没有更简单的方法呢。 C# 5.0之后,微软在c#语言中添加了两个关键字async与await,这是在TPL上面的更高一级的抽象,真正简化了异步编程的编程方式,从而有助于我们编写出真正健壮少bug的异步应用程序。 阅读全文
posted @ 2017-12-18 15:38 DotNet菜园 阅读(3666) 评论(1) 推荐(2)
摘要:我们学习任务调度程序,通过异步代码与UI进行交互。所以本示例是创建Windows应用程序。 taskScheduler是负责如何执行任务,默认情况下是把task放入线程池中的工作线程中。 阅读全文
posted @ 2017-12-11 16:07 DotNet菜园 阅读(1645) 评论(1) 推荐(2)
摘要:本示例学习如何实现基于Task的异步操作进行取消流程,以及在任务真正运行前如何知道任务已经被取消。 我们学习如何在task中抛出不同情况的异常,以及如何获取这些异常信息。 阅读全文
posted @ 2017-12-06 16:39 DotNet菜园 阅读(1329) 评论(1) 推荐(3)
摘要:本示例,将上一篇(多线程编程学习笔记——线程池(三))中的(使用BackgroundWorker组件示例)转为任务。 本示例是学习如何基于事件的异步转换为TASK来运行。本示例的关键是使用TaskCompletionSource 阅读全文
posted @ 2017-12-01 13:59 DotNet菜园 阅读(1610) 评论(0) 推荐(1)