Mon application est obligée d'utiliser un module tiers qui bloque Windows si deux instances sont démarrées en même temps sur la même machine. Pour contourner le problème, mon application C# a un mutex:utilisateur croisé C# mutex
static Mutex mutex = new Mutex(true, "{MyApp_b9d19f99-b83e-4755-9b11-d204dbd6d096}");
Et je vérifie si elle est présente - et si oui je montre un message d'erreur et fermer l'application:
bool IsAnotherInstanceRunning()
{
if (mutex.WaitOne(TimeSpan.Zero, true))
return (true);
else
return (false);
}
Le problème est si deux utilisateurs peuvent se connecter et ouvrir l'application en même temps, et IsAnotherInstanceRunning() retournera false.
Comment puis-je contourner ce problème?
Comment le module tiers fait-il cela? Avez-vous contacté leur support? – SLaks
À moins qu'il ne s'agisse d'un pilote au niveau du noyau, il est étonnamment difficile de faire de Windows un écran bleu de nos jours - que fait ce module dans le monde? –
@BlueRaja: Il est assez facile de Windows en mode utilisateur. Avez-vous déjà essayé de tuer csrss.exe? –