C#异步编程的一些认识

1、使用委托类型的BeginXXX,EndXXX

2、使用事件

3、使用aysnc,await关键字,会自动切换回UI线程,启动方法的线程可以被重用,线程没有阻塞。内部其实是封闭了Task类的ContinueWith方法,把await关键字行后边的代码放入ContinueWith方法。无依赖的多个等待方法,使用await Task.WhenAll(t1,t2)做统一等待不会阻塞当前线程

4、把BeginXXX,EndXXX转换为基于任务的异步模式

  1) 把同步方法封入委托,进而可以使用BeginXXX,EndXXX。

  2) 使用Task<T>.Factory.FromAsync<T>(BeginXXX,EndXXX,object,object)进入封装

原文地址:https://www.cnblogs.com/dux2013/p/10381861.html