gpt4 book ai didi

c# - 异步方法不需要额外的线程?

转载 作者:太空狗 更新时间:2023-10-30 00:00:10 26 4
gpt4 key购买 nike

在MSDN中,有这样一段话:

The async and await keywords don't cause additional threads to be created. Async methods don't require multithreading because an async method doesn't run on its own thread. The method runs on the current synchronization context and uses time on the thread only when the method is active. You can use Task.Run to move CPU-bound work to a background thread, but a background thread doesn't help with a process that's just waiting for results to become available.

但看起来我不需要更多关于粗体文本的帮助,因为我不确定它的确切含义。那么为什么不使用 Threads 就变成了 async 呢?

来源:http://msdn.microsoft.com/en-us/library/hh191443.aspx

最佳答案

有许多异步操作不需要使用多线程。异步 IO 之类的东西通过 interrupts 来工作当数据可用时发出信号。这允许您进行不使用额外线程的异步调用 - 当信号发生时,操作完成。

Task.Run 可用于制作您自己的基于 CPU 的异步方法,这些方法将在其自己的单独线程上运行。然而,该段落旨在表明这不是唯一选项。

关于c# - 异步方法不需要额外的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12273268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com