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上考虑优先级较低的线程。