日期:2014-05-19  浏览次数:21194 次

Thread.Sleep(0)
Thread.Sleep(0)指定零   (0)   以指示应挂起此线程以使其他等待线程能够执行。
对这句话不了解,我用了这个方法可是线程没有挂起,还有 "使其他线程能够执行 "
有什么意思.

------解决方案--------------------
Thread.Sleep(0)
并非是真的要线程休了0毫秒
其实线程是经常被暂停和打断的
只是Thread.Sleep操作是人为的让出时间给其他线程无运行。
那么在执行Thread.Sleep(0)的时候虽然线程的排程等候时间只加了0秒。但次课调用Thread.Sleep(0)的当前线程确实的被冻结了一下
那么线程管理单元自然会让其他线程开始执行
所以说
Thread.Sleep(0) 是让当前线程进行一个让位动作。 让其他线程在系统管理单元作出动作前有机会优先执行。

好比说
人们在排队买东西
轮到你了,而你可能还没想好买什么或者在考虑什么,总之你不就急买
那么你可以让位,你可以Thread.Sleep(100)
让身后排队的100个人买了你再买
可以可以Thread.Sleep(0)
让出一下
后边有人顶上了 你就排他后边
如果后边没人 那么你自然还可以排在你原来的位置上。