每当我不立即要求方法的结果(任务&lt;&gt;)或者我必须触发一次性方法(无效)时,我是否应该从现在开始使用async / await(c#5)?< / p>
当我在C#4中使用Task类并将工作推送到Backgroud线程时,我是否应该在所有情况下使用它?
我是否应该仅在使用异步.Net Framework方法的情况下使用它?
混淆。
我基本上是在寻找一个简单的解释,在这种情况下,我应该使用await / async,何时不使用。
答案 0 :(得分:9)
async
/ await
。许多操作自然是异步的(例如I / O);我推荐所有这些async
。其他操作自然是同步的(例如计算);我建议使用同步方法。
如果需要异步运行同步代码,可以将Task.Run
与async
一起用于后台工作。我在博客上解释为什么这是better than BackgroundWorker
and asynchronous delegates。
您还可以使用async
替换其他形式的异步处理,例如IAsyncResult
样式。
>>在任何有异步操作的情况下使用async
。