Talvolta è necessario far in modo che gli utenti eseguano una sola istanza di un’applicazione.
Ciò è possibile utilizzando l’oggetto Mutex del .Net Framework.
Nel esempio che segue è riportato il codice completo,scritto con il linguaggio di programmazione Visual C#(sharp), da inserire nel Main dell’applicazione :

using System;
using System.Threading;
using System.Windows.Forms;

namespace MioNameSpace
{
    public static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        public static void Main()
        {
           bool isFirstInstance;
           Mutex oMutex = new Mutex(true,"Global\\" + Application.ProductName,out isFirstInstance);
           if (isFirstInstance)
           {
               Application.EnableVisualStyles();
               Application.SetCompatibleTextRenderingDefault(false);
               Application.Run(new MioForm());
           }
           else
           {
               //inserire qui il messaggio da mostrare all'utente
           }
        }
    }
}

last Come garantire lesecuzione di una singola istanza di un applicazione su una macchina