System.SyncObjs.TMutex.Create

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

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.

Siehe auch