title: Splash screen display method best practice C#
body: <p>I am showing a splash form by starting a new thread immediately before running my main form.</p>
  
  <p>In the method that is run by this thread, I am using Application.Run as shown in Option 1 below. Is this a correct way of doing this, or are there problems waiting for me becaue I have called Application.Run twice? An alternative is Option 2, also shown below where I call .ShowDialog() to display the form.</p>
  
  <p>The splash form itself closes after a specified time, controlled within the form itself, and both options appear to work well.</p>
  
  <p>So my question is: Which is preferred - Option 1 or Option 2? If you could give specific reasons for one or the other that would be great.</p>
  
  <p>Thanks.</p>
  
  <p>Snippet of Main:</p>
  
  <pre><code>// Run splash screen thread.
  Thread splash = new Thread(new ThreadStart(ShowSplash));
  splash.Start();
  
  // Run main application.
  Application.Run(new MainForm());
  </code></pre>
  
  <p>Show splash form option 1:</p>
  
  <pre><code>    static void ShowSplash()
      {
          Application.Run(new SplashForm());
      }
  </code></pre>
  
  <p>Show splash form option 2:</p>
  
  <pre><code>    static void ShowSplash()
      {
          using (SplashForm splash = new SplashForm())
          {
              splash.ShowDialog();
          }
      }
  </code></pre>