Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 睡眠(0)将放弃获取的CPU资源吗?_C#_Multithreading - Fatal编程技术网

C# 睡眠(0)将放弃获取的CPU资源吗?

C# 睡眠(0)将放弃获取的CPU资源吗?,c#,multithreading,C#,Multithreading,当我指定时间间隔为零时 static void Main() { Thead.Sleep(0); } Main()线程会放弃它所获得的CPU资源吗?或者不等待它会继续吗?是。 线程应暂停该周期,以允许其他线程访问CPU。代码将立即安排到下一个周期 线程将在多线程环境中的下一个计划CPU插槽上继续处理 Thread.Sleep(-1)将无限期地挂起线程。Thread.Sleep(0)仅向具有相同或更高优先级的线程放弃CPU资源。如果有优先级较低的线程等待,它将被忽略 这就是为什么建议使用T

当我指定时间间隔为零时

static void Main()
{
   Thead.Sleep(0);
}
Main()线程会放弃它所获得的CPU资源吗?或者不等待它会继续吗?

是。 线程应暂停该周期,以允许其他线程访问CPU。代码将立即安排到下一个周期

线程将在多线程环境中的下一个计划CPU插槽上继续处理

Thread.Sleep(-1)将无限期地挂起线程。

Thread.Sleep(0)仅向具有相同或更高优先级的线程放弃CPU资源。如果有优先级较低的线程等待,它将被忽略


这就是为什么建议使用Thread.Sleep(1)。

从Windows Server 2003开始,此行为发生了更改。线程(0)在较新版本的Windows上考虑优先级较低的线程。