System.SyncObjs.TMutex.Create
Delphi
constructor Create(UseCOMWait: Boolean = False); overload;
constructor Create(MutexAttributes: PSecurityAttributes; InitialOwner: Boolean; const Name: string; UseCOMWait: Boolean = False); overload;
constructor Create(DesiredAccess: Cardinal; InheritHandle: Boolean; const Name: string; UseCOMWait: Boolean = False); overload;
C++
__fastcall TMutex(bool UseCOMWait)/* overload */;
__fastcall TMutex(Winapi::Windows::PSecurityAttributes MutexAttributes, bool InitialOwner, const System::UnicodeString Name, bool UseCOMWait)/* overload */;
__fastcall TMutex(unsigned DesiredAccess, bool InheritHandle, const System::UnicodeString Name, bool UseCOMWait)/* overload */;
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
constructor | public | System.SyncObjs.pas System.SyncObjs.hpp |
System.SyncObjs | TMutex |
Description
Instancie un objet TMutex.
Appelez Create pour créer un objet TMutex.
La première version du constructeur crée un mutex non nommé avec le descripteur de sécurité par défaut, et établit que le thread ayant créé le mutex n'est pas son propriétaire initial. Définissez le paramètre UseCOMWait pour garantir que lorsqu'un thread est bloqué et en attente de l'objet, tous les rappels STA COM peuvent être effectués dans ce thread.
La deuxième version du constructeur crée un mutex nommé avec plusieurs attributs, donnés parmi la liste de paramètres suivante :
Paramètre |
Signification |
MutexAttributes |
Les attributs de sécurité du mutex. MutexAttributes est un type de pointeur sur l'enregistrement _SECURITY_ATTRIBUTES, avec les champs suivants : nLength, lpSecurityDescriptor, InheritHandle. Le champ nLength doit toujours être égal à la taille en octets de l'enregistrement _SECURITY_ATTRIBUTES. lpSecurityDescriptor est un pointeur sur le descripteur de sécurité du mutex. Dernièrement, InheritHandle vaut True si le handle du mutex doit être hérité par les processus enfant. |
InitialOwner |
Définissez ce paramètre pour que le thread qui a créé le mutex soit considéré comme le propriétaire initial du mutex. |
Name |
Le nom du mutex. Les noms sont sensibles à la casse. |
UseCOMWait |
Définissez ce paramètre pour garantir que lorsqu'un thread est bloqué et en attente de l'objet, tous les rappels STA COM peuvent être effectués dans ce thread. |
La troisième version du constructeur permet l'ouverture d'un mutex existant, identifié par son nom. Les paramètres ont la signification suivante :
Paramètre |
Signification |
DesiredAccess |
Le type d'accès au mutex. Le constructeur échoue si le type d'accès requis n'est pas permis. Il peut s'agir de toute combinaison des constantes suivantes : MUTEX_ALL_ACCESS, MUTEX_MODIFY_STATE, SYNCHRONIZE, _DELETE, READ_CONTROL, WRITE_DAC, WRITE_OWNER. Toute combinaison doit inclure le droit d'accès SYNCHRONIZE, puisque ceci est spécifique à un mutex. |
InheritHandle |
Définissez ce paramètre pour que les processus enfant héritent du handle du mutex. |
Name |
Le nom du mutex à ouvrir. Les noms sont sensibles à la casse. |
UseCOMWait |
Définissez ce paramètre pour garantir que lorsqu'un thread est bloqué et en attente de l'objet, tous les rappels STA COM peuvent être effectués dans ce thread. |