2010-08-30 12 views
1

Nous avons un Mutext dans notre application C# .Net créé par la déclaration suivante:Comment supprimer un Mutex sur Windows XP

nouvelle Mutex (true, "MutexName", sur pobjIOwnMutex);

En fait, nous n'avons aucun problème avec cela, mais depuis un moment, l'application ne peut plus prendre la propriété de ce mutex. Cela n'arrive que sur mon PC développeur. Si je change le nom du mutex, cela ne pose aucun problème, donc je suppose que le mutex existe encore quelque part dans le système.

Existe-t-il un moyen de libérer ce mutex dans le système, ou peut-il y avoir une autre raison à cela?

Merci pour l'aide, Enyra

Répondre

0

Est-ce une instance précédente du fonctionnement du programme? Avez-vous vérifié les fuites de la poignée? Essayez d'utiliser un outil tel que Process Explorer pour voir si un processus a un handle ouvert à ce mutex.

+0

Non, il n'y a aucune instance du programme en cours d'exécution, il arrive aussi après le redémarrage du système. – Enyra

+0

Que voulez-vous dire par "ne peut pas prendre la propriété"? Qu'est-ce qui se passe exactement? – wj32

+0

dans l'extrait J'ai posté le constructeur de mutex prend un "out" paremeter indiquant si un nouveau mutex a été créé ou non. Si propjIOwnMutex = false (ce qui se passe dans mon cas) le système a déjà un mutex avec le nom donné. C'est ce que j'appelle prendre la propriété. – Enyra