Condividi tramite


C# Come evitare di eseguire due processi della stessa applicazione (it-IT)

Con questo esempio, mostriamo come evitare l'esecuzione di due processi della stessa applicazione. Con vb net possiamo contrassegnare la casella 'rendi a istanza singola' nelle proprietà del progetto alla sezone applicazione.
Questa opzione non è disponibile in un'applicazione in esecuzione con C #, ed è qui che torna utile la classe Mutex.

using System;
* using System.Collections.Generic;*
* using System.Linq;*
* using System.Windows.Forms;*
* using System.Threading;*
* *
namespace MutexClassExample
* {*
*     static class Program*
*     {*
*         static Mutex m;*
*         /// <summary>*
*         /// Punto di ingresso principale dell'applicazione.*
*         /// </summary>*
*         [STAThread]*
*         static void Main()*
*         {*
*             bool first = false;*
*             m = new Mutex(true, Application.ProductName.ToString(), out first);*
*             if ((first))*
*             {*
*                 Application.EnableVisualStyles();*
*                 Application.SetCompatibleTextRenderingDefault(false);*
*                 Application.Run(new Form1());*
*                 m.ReleaseMutex();*
*             }*
*             else*
*             {*
*               MessageBox.Show("Application" + " " + Application.ProductName.ToString() + " "  +"already running");*
*             }*
*         }*
*     }*
* }*