2012-12-05 64 views
8

我在.net 4.0中安装了异步包。这使我能够在我的应用程序中使用async/await关键字。异步/等待task.run与task.run并在.NET 4.0中继续

正如我已经理解,直到现在我可以使用包装我的task.run代码在异步/等待,并具有与使用task.run与continuewith相同的结果。

这是真的吗?还是有更深的分歧?

回答

11

这取决于你在做什么与ContinueWith。但是,是的,您通常可以使用await来达到您以前使用ContinueWith所达到的效果。 不能做的事情就是“只在失败时继续执行此代码” - 您只需使用正常的异常处理即可。正如AlexH所说,在你的方法的整体行为方面会有进一步的差异 - 但在大多数情况下,我会说理想的。基本上,代码的异步流动,所以异步方法往往会调用更多的异步方法等

,我建议你在什么async/await大约读了(有资源的负载在那里 - 我建议在"Consuming the Task-based Asynchronous Pattern"页面上MSDN作为一个起点

4

将会有一个区别,如果你在你的函数原型引入异步关键字;例外情况将在任务调用者的水平抛出 没有async关键字,你必须检查TaskContinuationOptions.OnlyOnFaulted状态来获取异常。