System.Classes.TThread.Queue

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

procedure Queue(AMethod: TThreadMethod); overload;
procedure Queue(AThreadProc: TThreadProcedure); overload;
class procedure Queue(const AThread: TThread; AMethod: TThreadMethod); overload; static;
class procedure Queue(AThread: TThread; AThreadProc: TThreadProcedure); overload; static;

C++

void __fastcall Queue(TThreadMethod AMethod)/* overload */;
void __fastcall Queue(_di_TThreadProcedure AThreadProc)/* overload */;
static void __fastcall Queue(TThread* const AThread, TThreadMethod AMethod)/* overload */;
static void __fastcall Queue(TThread* AThread, _di_TThreadProcedure AThreadProc)/* overload */;

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
procedure
function
public
System.Classes.pas
System.Classes.hpp
System.Classes TThread

Beschreibung

Führt einen Methodenaufruf im Haupt-Thread asynchron aus.

Queue bewirkt, dass der in AMethod festgelegte Aufruf im Haupt-Thread ausgeführt wird, und verhindert somit Multithread-Konflikte.

AMethod ordnet den Thread des Aufrufers zu:

  • Für statische Methoden können Sie AMethod jedem Thread mithilfe des Parameters AThread zuordnen.
  • Wenn Sie die Informationen für den Thread des Aufrufers im Haupt-Thread nicht brauchen, können Sie nil/NULL als Parameter AThread verwenden.
  • RemoveQueuedEvents verwendet diese Thread-Informationen, um die entsprechende Methode aus der Warteschlange zu finden.

Wenn Sie nicht genau wissen, ob eine Methode Thread-sicher ist, rufen Sie sie aus den Methoden Synchronize oder Queue auf, um zu gewährleisten, dass sie im Haupt-Thread ausgeführt wird.

Im Gegensatz zu Synchronize ist die Ausführung des aktuellen Threads zum Fortsetzen zulässig. Der Haupt-Thread verarbeitet alle Methoden aus der Warteschlange.

Warnung:  Rufen Sie Queue nicht aus dem Haupt-Thread aus auf. Dies kann zu einer Endlosschleife führen.

Hinweis: Sie können unsichere Methoden auch durch kritische Abschnitte oder TMultiReadExclusiveWriteSynchronizer schützen.

Siehe auch

Codebeispiele