我何时应该使用async / await而不是什么时候?

时间:2012-10-01 14:23:22

标签: multithreading asynchronous async-await c#-5.0

每当我不立即要求方法的结果(任务&lt;&gt;)或者我必须触发一次性方法(无效)时,我是否应该从现在开始使用async / await(c#5)?< / p>

当我在C#4中使用Task类并将工作推送到Backgroud线程时,我是否应该在所有情况下使用它?

我是否应该仅在使用异步.Net Framework方法的情况下使用它?

混淆。

我基本上是在寻找一个简单的解释,在这种情况下,我应该使用await / async,何时不使用。

1 个答案:

答案 0 :(得分:9)

进行异步操作时,可以使用

async / await。许多操作自然是异步的(例如I / O);我推荐所有这些async。其他操作自然是同步的(例如计算);我建议使用同步方法。

如果需要异步运行同步代码,可以将Task.Runasync一起用于后台工作。我在博客上解释为什么这是better than BackgroundWorker and asynchronous delegates

您还可以使用async替换其他形式的异步处理,例如IAsyncResult样式。

>在任何有异步操作的情况下使用async