Mi aplicación está obligada a utilizar un módulo de terceros que proyectará en pantalla azul Windows si se inician dos instancias al mismo tiempo en la misma máquina. Para evitar el problema, mi aplicación de C# tiene un mutex:cross-user C# mutex
static Mutex mutex = new Mutex(true, "{MyApp_b9d19f99-b83e-4755-9b11-d204dbd6d096}");
Y puedo comprobar si está presente - y si es así me muestro un mensaje de error y cerrar la aplicación:
bool IsAnotherInstanceRunning()
{
if (mutex.WaitOne(TimeSpan.Zero, true))
return (true);
else
return (false);
}
El problema es si dos usuarios pueden iniciar sesión y abrir la aplicación al mismo tiempo, y IsAnotherInstanceRunning() devolverá falso.
¿Cómo puedo evitar esto?
¿Cómo lo hace el módulo de terceros? ¿Has contactado con su apoyo? – SLaks
A menos que sea un controlador de nivel kernel, es sorprendentemente difícil hacer Windows pantalla azul en estos días. ¿Qué demonios está haciendo ese módulo? –
@BlueRaja: es bastante fácil de pantalla azul Windows desde el modo de usuario. ¿Alguna vez intentó matar a csrss.exe? –