Per consentire solo una singola istanza di un'applicazione in esecuzione sto usando mutex. Il codice è riportato di seguito. È questo il modo giusto per farlo? Ci sono dei difetti nel codice?Esegui una singola istanza di un'applicazione utilizzando Mutex
Come visualizzare l'applicazione già in esecuzione quando l'utente tenta di aprire l'applicazione la seconda volta. Al momento (nel codice qui sotto), sto semplicemente visualizzando un messaggio che un'altra istanza è già in esecuzione.
static void Main(string[] args)
{
Mutex _mut = null;
try
{
_mut = Mutex.OpenExisting(AppDomain.CurrentDomain.FriendlyName);
}
catch
{
//handler to be written
}
if (_mut == null)
{
_mut = new Mutex(false, AppDomain.CurrentDomain.FriendlyName);
}
else
{
_mut.Close();
MessageBox.Show("Instance already running");
}
}
duplicati di http://stackoverflow.com/questions/646480/is-using-a-mutex-to-prevent-multipule -instances-of-the-same-program-from-running –
Assicurati di leggere questo: http://stackoverflow.com/questions/229565/what-is-a-good-pattern-for-using-a-global -mutex-in-c/229567 –