Dan*_*nte 10 .net c# task-parallel-library c#-5.0
什么是.NET 4.0中await关键字的最佳替代方案?我有一个方法,需要在异步操作后返回一个值.我注意到wait()方法完全阻塞了线程,从而使异步操作无效.在释放UI线程的同时运行异步操作有哪些选择?
我认为你的基本选择是
最简单的方法可能是安装异步 CTP。据我所知,该许可证允许商业使用。它修补了编译器并附带了一个 150kb 的 dll,您可以将其包含到您的项目中。
您可以使用Task和.ContinueWith()。但这意味着您必须在异常处理和流量控制方面付出一些努力。
任务是一个功能性的构造。这就是为什么ContinueWith()不能与for循环或try-catch块等命令式结构很好地混合。因此async并await得到了介绍,以便编译器可以帮助我们解决这个问题。
如果您无法获得编译器的支持(即您使用.Net 4.0),那么最好的选择是将 TAP与功能框架一起使用。Reactive Extensions是一个非常好的处理异步方法的框架。
只需谷歌搜索“反应式扩展任务”即可开始。
| 归档时间: |
|
| 查看次数: |
9967 次 |
| 最近记录: |