gpt4 book ai didi

.net - Task.Delay 是非阻塞的吗?

转载 作者:行者123 更新时间:2023-12-01 12:47:49 26 4
gpt4 key购买 nike

Task.Delay 在内部使用 System.Threading.Timer。主要问题是 System.Threading.Timer 对我的应用程序是非阻塞的吗?如果我做:

await Task.Delay(15)

下面的代码是否使用线程 15 毫秒?或者它会使用操作系统进行回调。在哪里可以找到这方面的信息?

最佳答案

根据 Jeffrey Richter(第 748 页)的说法:

Internally, the thread pool has just one thread that it uses for all Timer objects. This thread knows when the next Timer object’s time is due. When the next Timer object is due, the thread wakes up, and internally calls ThreadPool’s QueueUserWorkItem to enter an entry into the thread pool’s queue, causing your callback method to get called.

这意味着当执行计时器时,您将至少有两个工作线程:一个 - 内部用于计时器,另一个 - 用于实际工作进程。

关于.net - Task.Delay 是非阻塞的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14306685/

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