我什么时候应该使用 async/await,什么时候不应该


当我不需要立即(Task<>)的方法的结果

或必须触发一次性方法(void)时,我是否应该从现在开始使用async/await(c# 5)?

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

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

困惑。

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

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

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

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

具有异步操作的任何情况下都应使用 async

最新更新