Skip to content

Instantly share code, notes, and snippets.

@Fhernd
Created July 4, 2015 20:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Fhernd/1797cc9e06b22588199a to your computer and use it in GitHub Desktop.
Save Fhernd/1797cc9e06b22588199a to your computer and use it in GitHub Desktop.
Ejecución única instancia en C#.
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