Running Single Instance of the Application

This article will show you how to do it using Mutex.

You've built an application and would like it to run a single instance. Here comes Mutex to the rescue! To do that you have to create a Mutex object at startup and when its over release it.

First add System.Threading namespace:

using System.Threading;

Then create a boolean variable and a Mutex object to control if Mutex is owned by application
 

bool isMutexOwned;

Mutex mut = null;

Then create a Mutex instance and control this Mutex via isMutexOwned boolean var.

using(Mutex mut=new Mutex(true,"My Mutex",out isMutexOwned))
{
   if(isMutexOwned)
   {
     
//Do Something...Mutex is owned by the application
   }
  
else
   {
     
//Mutex isnt owned.So other instances can run.
   }
}
 

public void ReleaseMut()
{
  mut.ReleaseMutex();
}


Add a Button Click event and raise ReleaseMut function. See what happens.
After that another instance of application will now run.