2012-10-01 248 views
7

我应该立即使用异步/等待(c#5)每当我不需要方法的结果立即(任务<>)或我必须触发一次性方法(void)?什么时候应该使用async/await,什么时候不用?

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

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

困惑。

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

回答

8

async/await当您有异步操作时可能会使用。许多操作自然是异步的(比如I/O);我建议所有这些人都使用async。其他操作自然是同步的(如计算);我建议为这些使用同步方法。

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

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

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

相关问题