public static void ShowSplashForm() { var showDialogThread = new Thread(() => { splashForm = new SplashForm(); splashForm.ShowDialog(); }); var waitDialogToCloseThread = new Thread(() => { CreateSem.WaitOne(); CloseSem.WaitOne(); splashForm.Invoke(new MethodInvoker(() => splashForm.Close())); }); showDialogThread.Start(); // 开始显示splashForm //showDialogThread.Join(); // 等待创建splashForm完成 waitDialogToCloseThread.Start(); // 开始监控信号量 等待splashForm关闭. }