【问题标题】:When should i use async/await and when not?我什么时候应该使用 async/await,什么时候不应该使用?
【发布时间】:2012-09-22 09:55:14
【问题描述】:

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

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

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

困惑。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 1970-01-01
      • 2023-04-02
      • 2011-04-15
      • 2017-04-10
      • 2012-03-19
      相关资源
      最近更新 更多