public void RunOnMainThread() { using (var waitHandle = new EventWaitHandle(false, EventResetMode.AutoReset)) using (var window = new RealSplashScreen(false)) { window.WaitHandle = waitHandle; window.CreateControl(); window.Message = string.Empty; window.Show(); Application.DoEvents(); } }
/// ------------------------------------------------------------------------------------ /// <summary> /// Starts the splash screen. /// </summary> /// ------------------------------------------------------------------------------------ private void StartSplashScreen() { m_splashScreen = new RealSplashScreen(m_DisplaySILInfo); m_splashScreen.WaitHandle = m_waitHandle; if (m_fNoUi) { IntPtr blah = m_splashScreen.Handle; // force handle creation. } else { #if !__MonoCS__ m_splashScreen.ShowDialog(); #else // Mono Winforms can't create Forms that are not on the Main thread. m_splashScreen.CreateControl(); m_splashScreen.Message = string.Empty; m_splashScreen.Show(); #endif } }