Splash Screen and Mdi Application c# vs 2010 <p>I have never had the need to create a splash screen and wondered what is the best way to do it.</p> <p>I have an mdi application that when the MDIParent loads it makes few database calls and displays.</p> <p>What I would like to do is </p> <ol> <li>Launch a SplashScreen </li> <li>Mdi Loads in the background and NOT VISIBLE</li> <li>When finish loading splash screen dissapears.</li> </ol> <p>I have done as follows but the problem i have is that the mdi still does the work when the splashscreen dissappears.I want the mdi to be fully loaded once the splash screen is gone.</p> <pre><code> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var splashForm = new SplashFormView(); splashForm.IntervalTime = 5000; --prop to decide how long the splashScreen should display splashForm.ShowDialog(); SetupUnityContainer(); } private static void SetupUnityContainer() { using (IUnityContainer container = new UnityContainer()) { container.RegisterType&lt;IMyService2, MyService2&gt;(); Application.Run(container.Resolve&lt;MdiParent&gt;()); } } </code></pre> <p>Should run the splashscreen on a background thread? How can I make the MDIForm to be called and not visible till all loaded?</p> <p>Many thanks</p>