API:System.Threading.TFuture

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

System.Threading.TTaskSystem.Threading.TAbstractTaskSystem.Threading.TThreadPool.TAbstractWorkerDataSystem.TInterfacedObjectSystem.TObjectTFuture

Delphi

TFuture<T> = class sealed(TTask, IFuture<T>)

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
class public System.Threading.pas System.Threading System.Threading

Beschreibung

TTask ist eine Klasse für die Verwaltung und Repräsentation von Prozeduren, die in parallelen Threads ausgeführt werden können.

System.Threading.TFuture erbt von System.Threading.TTask. Der folgende Inhalt bezieht sich auf System.Threading.TTask.

TTask ist eine Klasse für die Verwaltung und Repräsentation von Prozeduren, die in parallelen Threads ausgeführt werden können.

Eine Instanz von TTask repräsentiert eine einzelne Aufgabe oder Arbeitseinheit, die – wenn möglich – in einem Thread parallel zu anderen laufenden Aufgaben ausgeführt werden soll.

Die Klasse TTask erstellt und verwaltet durch das Interface ITask repräsentierte Aufgabeninstanzen, die Instanzen von TTask, davon abgeleitete Typen oder andere mit dem Interface ITask kompatible Typen sein können.

Die einer Aufgabe zugeordnete Prozedur kann mit anderen, ähnlichen Aufgaben zugeordneten Prozeduren und anderen aktuell ausgeführten Threads parallel ausgeführt werden. Die Aufgaben, die parallel ausgeführt werden, und der Zeitpunkt, zu dem sie ausgeführt werden, hängen von den für die Laufzeitumgebung der Zielplattform verfügbaren Threading-Ressourcen ab.

Für die parallele Ausführung geeignete Aufgaben können mit dem Konstruktor Create erstellt werden. Die dem Konstruktor zur Verfügung gestellten Aufgabenprozeduren werden nach dem Aufruf der Methode Start als bereit für die Ausführung betrachtet.

Mit den Methoden WaitForAll, WaitForAny und Wait von ITask wird die Ausführung des aufrufenden Threads explizit ausgesetzt, um auf eine oder alle laufenden Aufgaben zu warten.

Um die Ausführung einer Aufgabe abzubrechen, rufen Sie die Methode Cancel der betreffenden Instanz von ITask auf.

Eine Aufgabenprozedur kann direkt mit der Methode Run erstellt und für die Ausführung verwaltet werden; dies entspricht einem Aufruf von Create unmittelbar gefolgt von Start.

Bei Aufgaben, für die zu einem späteren Zeitpunkt im Programm ein Rückgabewert erforderlich ist, kann mit der generischen Funktion Future die Aufgabe aufgerufen werden, um den benötigten Wert parallel zu anderen Aufgaben zu ermitteln; dieser Wert wird dann später bei Bedarf durch Aufruf der Methode GetValue abgerufen.

Verwenden Sie die Synchronisierungstool der Unit System.SyncObjs, wenn für Aufgaben, die parallel ausgeführt werden können, global verfügbare Ressourcen, Variablen etc. erforderlich sind, um mögliche Konflikte zu vermeiden.

Siehe auch