什么是.NET 4.0中的await关键字的最佳选择?我有一个方法需要在异步操作后返回一个值.我注意到wait()方法完全阻塞线程,从而使异步操作无效.在释放UI线程的同时,我可以选择运行异步操作吗?
解决方法
我认为你的基本选择是
>使用任务和.ContinueWith()
>使用Async CTP和异步/等待
>使用Reactive Extensions
最简单的方法可能是安装Async CTP.据我所知,许可允许商业使用.它补丁编译器,并附带一个150kb的DLL,您可以将其包含到您的项目中.
您可以使用Task和.ContinueWith().但是这意味着您必须花费一些精力来处理和流程控制.
任务是一个功能结构.这就是为什么ContinueWith()与循环或try-catch块之类的命令式构造不兼容.因此,异步等待着介绍,所以编译器可以帮助我们.
如果你不能支持编译器(即使用.Net 4.0),最好的办法是使用TAP和功能框架. Reactive Extensions是处理异步方法的非常好的框架.
只要google为“反向扩展任务”开始.