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