API:Data.DBXPlatform.TDBXSemaphore.Create
Delphi
constructor Create(Count: Integer);
C++
__fastcall TDBXSemaphore(int Count);
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
constructor | public | Data.DBXPlatform.pas Data.DBXPlatform.hpp |
Data.DBXPlatform | TDBXSemaphore |
Beschreibung
Instantiiert ein TSemaphore-Objekt.
Data.DBXPlatform.TDBXSemaphore.Create erbt von System.SyncObjs.TSemaphore.Create. Der folgende Inhalt bezieht sich auf System.SyncObjs.TSemaphore.Create.
Instantiiert ein TSemaphore-Objekt.
Mit Create wird ein TSemaphore-Objekt erstellt.
Der Konstruktor System.SyncObjs.TSemaphore.Create hat drei Versionen:
- Die erste Version des Konstruktors erstellt ein unbenanntes binäres Semaphor mit einem Ausgangszählerwert von eins, das mit dem Standardsicherheitsdeskriptor erstellt wird.
- Das bedeutet, dass die untergeordneten Prozesse des aktuellen Prozesses das Handle auf dieses Semaphor nicht erben können. Im Grunde ist das gleichbedeutend mit dem Erstellen eines unbenannten TMutex-Objekts.
- Tipp: Legen Sie den Parameter UseCOMWait fest, um sicherzustellen, dass – wenn ein Thread blockiert ist und auf das Objekt wartet – STA COM-Aufrufe zurück in diesen Thread geleitet werden können.
- Die zweite Version des Konstruktors erstellt ein benanntes Semaphor mit mehreren Attributen, die in der folgenden Parameterliste angegeben sind:
Parameter |
Bedeutung |
SemaphoreAttributes |
Die Sicherheitsattribute des Semaphors. SemaphoreAttributes ist ein Zeigertyp auf einen _SECURITY_ATTRIBUTES-Record mit den folgenden Feldern: nLength, lpSecurityDescriptor, InheritHandle. Das Feld nLength sollte immer dieselbe Größe in Byte wie der _SECURITY_ATTRIBUTES-Record haben. lpSecurityDescriptor ist ein Zeiger auf den Sicherheitsdeskriptor des Semaphors. InheritHandle ist True, wenn das Handle auf das Semaphor von untergeordneten Prozessen geerbt werden soll. |
AInitialCount |
Der Anfangswert der Zählervariable des Semaphors, die die ursprüngliche Anzahl der freien Units der gemeinsamen Ressource enthält. |
AMaximumCount |
Der Maximalwert der Zählervariable des Semaphors, die die Anzahl der verfügbaren Units der gemeinsamen Ressource enthält. |
Name |
Der Name des Semaphors. Bei Namen wird die Groß- und Kleinschreibung berücksichtigt. |
UseCOMWait |
Legen Sie diesen Parameter fest, um sicherzustellen, dass – wenn ein Thread blockiert ist und auf das Objekt wartet – STA COM-Aufrufe weiterhin zurück in diesen Thread geleitet werden können. |
- Die zweite Version des Konstruktors ermöglicht das Öffnen eines vorhandenen Semaphors anhand seines Namens. Die Parameter haben die folgende Bedeutung:
Parameter |
Bedeutung |
DesiredAccess |
Der Zugriffstyp auf das Semaphor. Der Konstruktor schlägt fehl, wenn der angeforderte Zugriffstyp nicht zulässig ist. Möglich ist jede Kombination der folgenden Konstanten: SEMAPHORE_ALL_ACCESS, SEMAPHORE_MODIFY_STATE, SYNCHRONIZE, _DELETE, READ_CONTROL, WRITE_DAC, WRITE_OWNER. |
InheritHandle |
Legen Sie diesen Parameter für die untergeordneten Prozesse fest, die das Handle erben sollen. |
Name |
Der Name des zu öffnenden Semaphors. Bei Namen wird die Groß- und Kleinschreibung berücksichtigt. |
UseCOMWait |
Legen Sie diesen Parameter fest, um sicherzustellen, dass – wenn ein Thread blockiert ist und auf das Objekt wartet – STA COM-Aufrufe weiterhin zurück in diesen Thread geleitet werden können. |