CLR via C# 读书笔记 33 Thread.Sleep 1 0 1 和其他

Thread.Sleep(-1)

通知系统不要调度该线程,事实上这个方法没什么用,因为它让线程一直活着又什么都不做,

建议是直接终结了现场

Thread.Sleep(0)

告诉系统当前线程不需要剩下的时间片了,请系统去调度其他的线程

但是系统经过计划以后有可能还是觉得当前线程比较重要,又继续执行当前线程

这取决于优先级,如果其他优先级都比当前优先级低的话,那么当前线程会继续

Thread.Sleep(1)

强制上下文切换,线程会休眠超过1毫秒

Thread.Sleep(int)

休眠线程多少毫秒.

因为windows系统的计时器时间片切换是30ms...所以实际上.....这个时间都是不怎么准确的

提高优先级有利于提高准确度, 不过没有办法根本上解决这个问题

原文地址:https://www.cnblogs.com/PurpleTide/p/1882034.html