Possible Duplicate:
What is the correct way to create a single instance application?
I have a Winforms app, which launches a splash screen via the following code:
Hide();
        bool done = false;
        // Below is a closure which will work with outer variables.
        ThreadPool.QueueUserWorkItem(x =>
                                  {
                                      using (var splashForm = new SplashScreen())
                                      {
                                          splashForm.Show();
                                          while (!done)
                                              Application.DoEvents();
                                          splashForm.Close();
                                      }
                                  });
        Thread.Sleep(3000);
        done = true;
The above is in the main form's codebehind and called from the load event handler.
However, how can I ensure that only one instance of the application will load at a time? In the load event handler of the main form, I could check if the process list is on the system (via GetProcessesByName(...)), but is there a better method?
Using .NET 3.5.
 
     
     
    