12

我是否应该从现在开始使用 async/await (c# 5) 每次我不需要立即获得方法的结果 (Task<>) 或者我必须触发一次性方法 (void)?

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

我应该只在使用异步 .Net Framework 方法的情况下使用它吗?

使困惑。

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

4

1 回答 1

11

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

如果需要异步运行同步代码,可以使用Task.Runwith进行后台工作。async我在我的博客上解释了为什么这BackgroundWorker异步委托更好。

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

应该async在有异步操作的任何情况下使用。

于 2012-10-01T14:32:45.000 回答