【发布时间】:2014-08-31 12:11:22
【问题描述】:
async/await 是否应该与线程一起使用以利用多核?我不完全理解 async/await,但看起来它不会创建新线程并且不使用线程池。所以它在当前线程上运行代码,这意味着不支持多核。
【问题讨论】:
-
Async/await 本身与线程无关。它是关于暂停执行等待结果,并为其他代码释放资源。线程是这个特性的一种外部:实现可能决定切换到另一个线程来执行任务。 (
Task.Run也将使用线程池线程 AFAIK。但它与 async/await 功能没有直接关系。) -
正确。它是关于 IO 池,而不是线程池。
标签: c# .net async-await