System.SyncObjs.TEvent.Create

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

constructor Create(EventAttributes: PSecurityAttributes; ManualReset,  InitialState: Boolean; const Name: string; UseCOMWait: Boolean = False); overload;
constructor Create(UseCOMWait: Boolean = False); overload;

C++

__fastcall TEvent(Winapi::Windows::PSecurityAttributes EventAttributes, bool ManualReset, bool InitialState, const System::UnicodeString Name, bool UseCOMWait)/* overload */;
__fastcall TEvent(bool UseCOMWait)/* overload */;

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
constructor public
System.SyncObjs.pas
System.SyncObjs.hpp
System.SyncObjs TEvent


Beschreibung

Instantiiert ein TEvent-Objekt zu Darstellung eines Ereignisobjekts.

Mit Create erzeugen Sie ein TEvent-Objekt. Create kann ein neues Ereignisobjekt generieren oder den Zugriff auf ein vorhandenes, benanntes Ereignisobjekt ermöglichen.

Der erste überladene Konstruktor setzt die folgenden Parameter:

  • Setzen Sie den EventAttributes-Parameter, um die Zugriffsrechte und Vererbungsmöglichkeiten des neuen Ereignisobjekts anzugeben. Wenn EventAttributes auf nil (Delphi) bzw. NULL (C++) gesetzt wird, erzeugt Create ein Ereignisobjekt mit einer Standardgruppe von Sicherheitsattributen. Wenn das TEvent-Objekt für den Zugriff auf ein vorhandenes, benanntes Ereignisobjekt vorgesehen ist, wird nur das Feld bInheritHandle von EventAttributes verwendet, da die Zugriffsrechte bei der Erzeugung des Ereignisobjekts festgelegt wurden.
  • Mit dem Parameter ManualReset wird festgelegt, ob das TEvent-Objekt nur durch die Methode ResetEvent deaktiviert werden kann oder ob es bei der Freigabe eines einzelnen, wartenden Threads automatisch zurückgesetzt wird. Wenn ManualReset true ist, bleibt das Signal TEvent gesetzt, bis es von der Methode ResetEvent ausgeschaltet wird. Bei false wird das Signal automatisch ausgeschaltet, wenn nur ein einzelner Thread auf das Signal wartet und dieser freigegeben wird. Wenn das TEvent-Objekt für den Zugriff auf ein vorhandenes, benanntes Ereignisobjekt erzeugt wird, wird der Parameter ManualReset ignoriert.
  • In InitialState wird angegeben, ob das TEvent-Objekt mit gesetztem oder deaktiviertem Signal erzeugt werden soll. Wenn InitialState den Wert true hat, wird das TEvent-Objekt mit gesetztem Signal erzeugt. Wenn das TEvent-Objekt für den Zugriff auf ein vorhandenes, benanntes Ereignisobjekt erzeugt wird, wird der Parameter InitialState ignoriert.
  • Im Parameter Name wird der Name eines neu zu erzeugenden oder eines vorhandenen Ereignisobjekts übergeben. Wenn kein anderer Thread oder Prozess auf das Ereignisobjekt zugreifen muss, braucht für Name kein Wert angegeben zu werden. Name kann ein String mit bis zu 260 Zeichen plus des Backslash-Zeichens (\) sein. Wenn Name ein vorhandenes Ereignisobjekt bezeichnet, muss der Wert unter Berücksichtigung der Groß-/Kleinschreibung mit dem Namen des vorhandenen Ereignisses übereinstimmen. Wenn Name mit dem Namen eines vorhandenen Semaphors, Mutex oder Dateizuordungsobjekts übereinstimmt, wird das TEvent-Objekt mit Handle = 0 erzeugt, und alle Methodenaufrufe werden fehlschlagen.
  • Setzen Sie UseCOMWait auf True, 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.

Der zweite überladene Konstruktor akzeptiert nur den UseCOMWait-Parameter. Dieser Konstruktor erstellt ein Ereignis mit null Ereignisattributen, manuell zurückgesetzt, nicht anfänglich signalisiert, und einen leeren Namen.

Siehe auch