System.Threading.TTask.Future
Delphi
class function Future<T>(Sender: TObject; Event: TFunctionEvent<T>): IFuture<T>; overload; static; inline;
class function Future<T>(Sender: TObject; Event: TFunctionEvent<T>; APool: TThreadPool): IFuture<T>; overload; static; inline;
class function Future<T>(const Func: TFunc<T>): IFuture<T>; overload; static; inline;
class function Future<T>(const Func: TFunc<T>; APool: TThreadPool): IFuture<T>; overload; static; inline;
C++
inline System::DelphiInterface<IFuture__1<T> > __fastcall TTask::Future(
System::TObject* Sender,
T __fastcall (__closure *Event)(System::TObject* Sender))
inline System::DelphiInterface<IFuture__1<T> > __fastcall TTask::Future(
System::TObject* Sender,
T __fastcall (__closure *Event)(System::TObject* Sender),
TThreadPool* APool)
inline System::DelphiInterface<IFuture__1<T> > __fastcall TTask::Future(
const System::DelphiInterface<System::Sysutils::TFunc__1<T> > Func)
inline System::DelphiInterface<IFuture__1<T> > __fastcall TTask::Future(
const System::DelphiInterface<System::Sysutils::TFunc__1<T> > Func,
TThreadPool* APool)
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
function | public | System.Threading.pas SystemThreading.h |
System.Threading | TTask |
Description
Future accepte une fonction capable de s'exécuter dans un thread parallèle, renvoyant une interface qui permet d'obtenir le résultat au moment où il est requis dans le programme.
La valeur de renvoi de la fonction est obtenue au moment requis dans le programme via l'instance de IFuture<T> donnée par le résultat de Future<T>. Le paramètre de type, T, représente le type de renvoi de la fonction désignée pour s'exécuter dans un thread parallèle.
La méthode Future renvoie une instance de IFuture dans la variable définie de type T
.
Appelez la première méthode Future surchargée avec les paramètres décrits ci-dessous.
Paramètre | Signification |
Sender
|
Un objet contenant des données qui seront utilisées par Event .
|
Event
|
Une fonction qui renvoie l'instance de la valeur T et reçoit l'objet Sender en tant que paramètre.
|
Appelez la seconde méthode Future surchargée avec les paramètres décrits ci-dessous.
Paramètre | Signification |
Sender
|
Un objet contenant des données qui seront utilisées par Event .
|
Event
|
Une fonction qui renvoie l'instance de la valeur T et reçoit l'objet Sender en tant que paramètre.
|
APool
|
Un thread thread-pool utilisé pour exécuter la fonction. |
Appelez la troisième méthode Future surchargée avec les paramètres décrits ci-dessous :
Paramètre | Signification |
Func
|
Une référence TFunc à la fonction qui renvoie l'instance de la valeur T .
|
Appelez la quatrième méthode Future surchargée avec les paramètres décrits ci-dessous.
Paramètre | Signification |
Func
|
Une référence TFunc à une fonction qui renvoie l'instance de la valeur T .
|
APool
|
Un thread thread-pool utilisé pour exécuter la fonction. |
S'ils sont présents, les paramètres Sender
sont transmis à la fonction cible comme cela se produit avec les gestionnaires d'événement, fournissant les propriétés et les méthodes de l'objet Sender
à la fonction ciblée pour s'exécuter dans un thread parallèle.
L'exécution d'une fonction dans un thread parallèle dépend du CPU et des ressources de threads disponibles sur la plate-forme cible au moment de l'exécution. Lorsqu'un paramètre ThreadPool
est spécifié, les ressources de threads pour l'appel à Future<T> sont récupérées à partir de ce pool et non pas à partir d'un pool par défaut (utilisé lorsque les ressources de threads doivent être limitées, ce qui permet de libérer des ressources de threads à d'autres fins).