多线程编程里的thread.sleep问题

2025-03-28 11:48:37
推荐回答(2个)
回答1:

thread.sleep(0) 或3,只是让CPU能切换下时间片,有机会腾出CPU让别人执行。
window的计时最小是以15ms做为单位的,以15ms递增的,所以可以有15,30,45,15倍数的精度,而且是在上下浮动,设为30可能是15,可能是45(主要看cpu忙不忙)。

回答2:

sleep方法就是让线程等待的, 给予的参数一般都是毫秒的单位, 比如等待1秒就是Thread.Sleep(1000);
在使用动画效果的时候, 这个方法很常用, 因为很多动画效果都是通过循环完成的, 如果不用Sleep进行延时等待的话, 那个效果基本上就是闪了一下; 还有的是因为要等待另一项工作(通常也是另一个线程)完成以后, 这个线程再继续进行, 这个时候就可以先Sleep一阵, 然后检测是否完成, 没完成再Sleep, 直到完成以后再继续运行