Duplicar posible:
What is the correct way to create a single instance application?Asegurar una sola instancia de aplicación
Tengo una aplicación Windows Forms, que se lanza una pantalla de inicio a través del siguiente código:
Hide();
bool done = false;
// Below is a closure which will work with outer variables.
ThreadPool.QueueUserWorkItem(x =>
{
using (var splashForm = new SplashScreen())
{
splashForm.Show();
while (!done)
Application.DoEvents();
splashForm.Close();
}
});
Thread.Sleep(3000);
done = true;
El arriba está en el código subyacente de la forma principal y se llama desde el controlador de eventos de carga.
Sin embargo, ¿cómo puedo asegurarme de que solo se cargue una instancia de la aplicación a la vez? En el controlador de eventos de carga del formulario principal, podría verificar si la lista de procesos está en el sistema (a través de GetProcessesByName (...)), pero ¿hay algún método mejor?
Usando .NET 3.5.
Debe llamar 'Application.Run (SplashForm)' 'en lugar de un DoEvents)' lazo (. – SLaks