Thread.Sleep(0) 表示挂起0毫秒,你可能觉得没作用,你要写Thread.Sleep(1000) 就有感觉了。似乎毫无意义。
MSDN的说明:指定零 (0) 以指示应挂起此线程以使其他等待线程能够执行。
Thread.Sleep(0) 并非是真的要线程挂起0毫秒,意义在于这次调用Thread.Sleep(0)的当前线程确实的被冻结了一下,让其他线程有机会优先执行。Thread.Sleep(0) 是你的线程暂时放弃cpu,也就是释放一些未用的时间片给其他线程或进程使用,就相当于一个让位动作。
1
Thread th
=
new
Thread(
new
ThreadStart(MainForm.StartSplash));
2 th.Priority = ThreadPriority.AboveNormal;
3 th.Start();
4 Thread.Sleep( 0 );
5
6 base .SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true );
7 this .Initialize();
8
2 th.Priority = ThreadPriority.AboveNormal;
3 th.Start();
4 Thread.Sleep( 0 );
5
6 base .SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true );
7 this .Initialize();
8