System.Threading.TTask

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

System.Threading.TAbstractTaskSystem.Threading.TThreadPool.TAbstractWorkerDataSystem.TInterfacedObjectSystem.TObjectTTask

Delphi

TTask = class(TAbstractTask, TThreadPool.IThreadPoolWorkItem, ITask, TAbstractTask.IInternalTask)

C++

class PASCALIMPLEMENTATION TTask : public TAbstractTask

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
class public
System.Threading.pas
System.Threading.hpp
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.

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