Mutex

Guide du développeur .NET Framework 
Mutex 

Vous pouvez utiliser un objet Mutex pour fournir l'accès exclusif à une ressource. La classe Mutex utilise plus de ressources de système que la classe Monitor, mais elle peut être marshalée à travers des limites de domaine d'application, elle peut être utilisée avec les attentes multiples, et elle peut être utilisée pour synchroniser des threads dans des processus différents. Pour une comparaison de mécanismes de synchronisation managés, consultez Vue d'ensemble des primitives de synchronisation.

Pour des exemples de code, consultez la documentation de référence pour les constructeurs Mutex.

Utilisation de mutex

Un thread appelle la méthode WaitOne d'un mutex pour demander la propriété. L'appel est bloqué jusqu'à ce que le mutex soit disponible ou jusqu'à ce que l'intervalle de délai d'expiration facultatif s'écoule. L'état d'un mutex est signalé si aucun thread ne le possède.

Un thread libère un mutex en appelant sa méthode ReleaseMutex. Les mutex ont l'affinité du thread ; c'est-à-dire que le mutex peut être libéré uniquement par le thread qui le possède. Si un thread libère un mutex qu'il ne possède pas, une ApplicationException est levée dans le thread.

Étant donné que la classe Mutex dérive de WaitHandle, vous pouvez également appeler les méthodes WaitAll ou WaitAny statiques de WaitHandle pour demander la propriété d'un Mutex dans la combinaison avec d'autres handles d'attente.

Si un thread possède un Mutex, ce thread peut spécifier le même Mutex des appels d'attente-demande répétés sans bloquer son exécution ; il doit libérer le Mutex autant de fois en libérer la propriété.

Mutex abandonnés

Si un thread se termine sans libérer de Mutex, le mutex est dit abandonné. C'est une grave erreur de programmation parce que la ressource que le mutex protège peut être laissée dans un état incohérent. Dans le .NET Framework version 2.0, une AbandonedMutexException est levée dans le thread suivant qui acquiert le mutex.

RemarqueRemarque

Dans le .NET Framework versions 1.0 et 1.1, un Mutex abandonné a pour valeur l'état signalé et le prochain thread en attente obtient la propriété. Si aucun thread n'attend, le Mutex reste dans un état signalé. Aucune exception n'est levée.

Mutex locaux et système

Les mutex sont de deux types : les mutex locaux et les mutex de systèmes nommés. Si vous créez un objet Mutex à l'aide d'un constructeur qui accepte un nom, il est associé à un objet de système d'exploitation portant ce nom. Les mutex de système nommé sont visibles dans la totalité du système d'exploitation et peuvent être utilisés pour synchroniser les activités de processus. Vous pouvez créer plusieurs objets Mutex qui représentent le même mutex de système nommé ; vous pouvez également utiliser la méthode OpenExisting pour ouvrir un mutex de système nommé existant.

Un mutex local existe uniquement dans le cadre du processus concerné. Il peut être utilisé par tout thread du processus doté d'une référence à l'objet Mutex local. Chaque objet Mutex constitue un mutex local séparé.

Accéder à la sécurité du contrôle pour les mutex de système

Le .NET Framework version 2.0 fournit la capacité de demander et définir la sécurité du contrôle d'accès Windows pour les objets de système nommé. La protection de mutex de système du moment de création est recommandée parce que les objets système sont globaux et par conséquent peuvent être verrouillés par code autre que votre propre code.

Pour plus d'information sur la sécurité du contrôle d'accès pour mutex, consultez les classes MutexSecurity et MutexAccessRule, l'énumération MutexRights, les méthodes GetAccessControl, SetAccessControl et OpenExisting de la classe Mutex et le constructeur Mutex.

Voir aussi


Ces informations proviennent du site de http://msdn2.microsoft.com
Source de cette page : http://msdn2.microsoft.com/fr-fr/library/hw29w7t1.aspx

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

5 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-7081
Document créé le 08/11/06 02:20, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-hw29w7t1.html Document affiché 8 fois ce mois de Mai.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Navigation (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
0,66 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
Le vrai danger, ce n'est pas quand les ordinateurs penseront comme les hommes, c'est quand les hommes penseront comme les ordinateurs.

Sydney J. Harris
 
l'infobrol
Nous sommes le Jeudi 31 Mai 2012, 12:34, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)