Para permitir que se ejecute solo una instancia de una aplicación, estoy usando mutex. El código se da a continuación. ¿Esta es la manera correcta de hacerlo? ¿Hay algún defecto en el código?Ejecutar una instancia única de una aplicación utilizando Mutex
Cómo mostrar la aplicación que ya se está ejecutando cuando el usuario intenta abrir la aplicación por segunda vez. Actualmente (en el código a continuación), solo estoy mostrando un mensaje de que ya se está ejecutando otra instancia.
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");
}
}
duplicados de http://stackoverflow.com/questions/646480/is-using-a-mutex-to-prevent-multipule -instances-of-the-same-program-from-running –
Asegúrese de leer esto: http://stackoverflow.com/questions/229565/what-is-a-good-pattern-for-using-a-global -mutex-in-c/229567 –