async/await 是否应该与线程一起使用以利用多核?我不完全理解 async/await,但看起来它不会创建新线程并且不使用线程池。因此它在当前线程上运行代码,这意味着不支持多核。
async-await与跨多个核心的负载平衡工作无关。它是关于利用本质上异步的操作并释放资源来处理更多工作。好的异步 API 不会使用额外的线程来执行工作。通常,没有线程,这意味着代码将继续在同一线程上执行,直到命中第一个线程await
并将控制权交还给调用者。
您可以查看异步 API 的示例,例如HttpClient
, StreamWriter
, SmtpClient
等等。它们都通过线路处理工作(网络驱动程序调用、磁盘驱动器调用等)。
如果您正在寻找并行处理,请查看Parallel class.
您也可以从阅读开始.NET Framework 中的并行编程
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)