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.
La première version du constructeur crée un sémaphore binaire sans nom avec une valeur de compteur initiale à un. En outre, le sémaphore est créé avec 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. C'est pratiquement équivalent à la création d'un objet TMutex sans nom. 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 (apartment à thread unique) peuvent toujours être effectués dans ce thread.
La seconde 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. |
La troisième 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 sur le 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. |