System.Classes.TThread.Queue
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 */;
Inhaltsverzeichnis
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