Created
July 4, 2015 20:27
-
-
Save Fhernd/1797cc9e06b22588199a to your computer and use it in GitHub Desktop.
Ejecución única instancia en C#.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Threading; | |
namespace Receta.CSharp.R0417 | |
{ | |
public class UnicaInstanciaAplicacion | |
{ | |
public static void Main() | |
{ | |
// Valor centinela (o bandera) para indicar si esta | |
// aplicación ya cuenta con una instancia: | |
bool appEnEjecucion; | |
// Mutex para tomar el control de la ejecución de esta | |
// aplicación por una única instancia: | |
using (Mutex mutex = new Mutex(true, "UnicaInstancia", out appEnEjecucion)) | |
{ | |
// Determina si esta aplicación posee el control de ejecución: | |
if (appEnEjecucion) | |
{ | |
Console.WriteLine("\nÚnica instancia de `UnicaInstancia` en ejecución. " + | |
"\n\tPara finalizarla debe presionar la tecla Enter."); | |
Console.ReadLine(); | |
// Libera la ejecución de esta instancia: | |
mutex.ReleaseMutex(); | |
} | |
else // La aplicación se haya en ejecución, | |
// el intento de esta nueva terminará por finalizar: | |
{ | |
Console.WriteLine("\nOtra instancia de la aplicación está en ejecución." + | |
"Esta instancia finalizará."); | |
} | |
} | |
// A espera de continuar: | |
Console.WriteLine("\nEl método `Main` ha finalizado. Presione Enter para continuar."); | |
Console.ReadLine(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment