API:Data.DBXPlatform.TDBXSemaphore.Create
Delphi
constructor Create(Count: Integer);
C++
__fastcall TDBXSemaphore(int Count);
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
constructor | public | Data.DBXPlatform.pas Data.DBXPlatform.hpp |
Data.DBXPlatform | TDBXSemaphore |
Description
Instancie un objet TSemaphore.
Data.DBXPlatform.TDBXSemaphore.Create hérite de System.SyncObjs.TSemaphore.Create. Tout le contenu en-dessous de cette ligne se réfère à System.SyncObjs.TSemaphore.Create.
Instancie un objet TSemaphore.
Appelez Create pour créer un objet TSemaphore.
Le constructeur System.SyncObjs.TSemaphore.Create a trois versions.
- La première version du constructeur crée un sémaphore binaire sans nom avec une valeur de compteur initiale à un, créée par le descripteur de sécurité par défaut.
- Cela signifie que les processus enfant du processus en cours ne peuvent pas hériter du handle de ce sémaphore. Cela équivaut à créer un objet TMutex sans nom.
- Conseil: 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 seconde version du constructeur crée un sémaphore nommé avec plusieurs attributs, donnés parmi la liste de paramètres suivante :
Paramètre |
Signification |
SemaphoreAttributes |
Les attributs de sécurité du sémaphore. SemaphoreAttributes est un type de pointeur sur un 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 du descripteur de sécurité du sémaphore. Enfin, InheritHandle vaut True si le handle du sémaphore doit être hérité par les processus enfant. |
AInitialCount |
La valeur initiale de la variable compteur du sémaphore, donnant le nombre initial d'unités libres de la ressource partagée. |
AMaximumCount |
La valeur maximale de la variable compteur du sémaphore, donnant le nombre d'unités disponibles de la ressource partagée. |
Name |
Le nom du sémaphore. 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 toujours être effectués dans ce thread. |
- La troisième version du constructeur permet l'ouverture d'un sémaphore existant, identifié par son nom. Les paramètres ont la signification suivante :
Paramètre |
Signification |
DesiredAccess |
Le type d'accès au sémaphore. Le constructeur échoue si le type d'accès demandé n'est pas autorisé. Il peut être représenté par toute combinaison des constantes suivantes : SEMAPHORE_ALL_ACCESS, SEMAPHORE_MODIFY_STATE, SYNCHRONIZE, _DELETE, READ_CONTROL, WRITE_DAC, WRITE_OWNER. |
InheritHandle |
Définissez ce paramètre pour que les processus enfant héritent du handle. |
Name |
Le nom du sémaphore à 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 toujours être effectués dans ce thread. |