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 */;
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
constructor | public | System.SyncObjs.pas System.SyncObjs.hpp |
System.SyncObjs | TMutex |
Beschreibung
Instantiiert ein TMutex-Objekt.
Mit Create wird ein TMutex-Objekt erstellt.
Die erste Version des Konstruktors erstellt einen unbenannten Mutex mit dem Standard-Sicherheitsdeskriptor und gewährleistet, dass der Thread, der den Mutex erstellt hat, nicht sein ursprünglicher Eigentümer ist. Setzen Sie den Parameter UseCOMWait, um sicherzustellen, dass – wenn ein Thread blockiert ist und auf das Objekt wartet – STA COM-Aufrufe zurück in diesen Thread gemacht werden können.
Die zweite Version des Konstruktors erstellt einen benannten Mutex mit verschiedenen Attributen, die durch die folgende Liste von Parametern angegeben sind:
Parameter |
Bedeutung |
MutexAttributes |
Die Sicherheitsattribute des Mutex. MutexAttributes ist ein Zeigertyp auf den _SECURITY_ATTRIBUTES-Datensatz mit den folgenden Feldern: nLength, lpSecurityDescriptor, InheritHandle. Das nLength-Feld sollte immer der Größe (in Bytes) des _SECURITY_ATTRIBUTES-Datensatzes entsprechen. lpSecurityDescriptor ist ein Zeiger auf den Sicherheitsdeskriptor des Mutex. InheritHandle ist True, wenn das Handle auf den Mutex von untergeordneten Prozessen geerbt werden soll. |
InitialOwner |
Setzen Sie diesen Parameter für den Thread, der den Mutex erstellt hat, damit er als der ursprüngliche Eigentümer des Mutex fungieren kann. |
Name |
Der Name des Mutex. Namen berücksichtigen die Groß- und Kleinschreibung. |
UseCOMWait |
Setzen Sie diesen Parameter, um sicherzustellen, dass – wenn ein Thread blockiert ist und auf das Objekt wartet – STA COM-Aufrufe zurück in diesen Thread gemacht werden können. |
Mit der dritten Version des Konstruktors öffnen Sie einen existierenden Mutex, das durch seinen Namen identifiziert wird. Die Parameter haben die folgenden Bedeutungen:
Parameter |
Bedeutung |
DesiredAccess |
Der Zugriffstyp auf den Mutex. Der Konstruktor schlägt fehl, wenn der angeforderte Zugriffstyp nicht zulässig ist. Möglich ist jede Kombination der folgenden Konstanten: MUTEX_ALL_ACCESS, MUTEX_MODIFY_STATE, SYNCHRONIZE, _DELETE, READ_CONTROL, WRITE_DAC, WRITE_OWNER. Jede Kombination muss aber das Zugriffsrecht SYNCHRONIZE enthalten, da dies spezifisch für ein Mutex ist. |
InheritHandle |
Setzen Sie diesen Parameter für die untergeordnete Prozesse, die das Mutex-Handle erben sollen. |
Name |
Der Name des zu öffnenden Mutex. Namen berücksichtigen die Groß- und Kleinschreibung. |
UseCOMWait |
Setzen Sie diesen Parameter, um sicherzustellen, dass – wenn ein Thread blockiert ist und auf das Objekt wartet – STA COM-Aufrufe zurück in diesen Thread gemacht werden können. |