System.Threading.TParallel.Join

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

class function Join(Sender: TObject; AEvents: array of TNotifyEvent): ITask; overload; static;
class function Join(Sender: TObject; AEvents: array of TNotifyEvent; APool: TThreadPool): ITask; overload; static;
class function Join(Sender: TObject; AEvent1, AEvent2: TNotifyEvent): ITask; overload; static; inline;
class function Join(Sender: TObject; AEvent1, AEvent2: TNotifyEvent; APool: TThreadPool): ITask; overload; static;
class function Join(const AProcs: array of TProc): ITask; overload; static;
class function Join(const AProcs: array of TProc; APool: TThreadPool): ITask; overload; static;
class function Join(const AProc1, AProc2: TProc): ITask; overload; static; inline;
class function Join(const AProc1, AProc2: TProc; APool: TThreadPool): ITask; overload; static;

C++

static _di_ITask __fastcall Join(System::TObject* Sender, System::Classes::TNotifyEvent *AEvents, const int AEvents_High)/* overload */;
static _di_ITask __fastcall Join(System::TObject* Sender, System::Classes::TNotifyEvent *AEvents, const int AEvents_High, TThreadPool* APool)/* overload */;
static _di_ITask __fastcall Join(System::TObject* Sender, System::Classes::TNotifyEvent AEvent1, System::Classes::TNotifyEvent AEvent2)/* overload */;
static _di_ITask __fastcall Join(System::TObject* Sender, System::Classes::TNotifyEvent AEvent1, System::Classes::TNotifyEvent AEvent2, TThreadPool* APool)/* overload */;
static _di_ITask __fastcall Join(const System::Sysutils::_di_TProc *AProcs, const int AProcs_High)/* overload */;
static _di_ITask __fastcall Join(const System::Sysutils::_di_TProc *AProcs, const int AProcs_High, TThreadPool* APool)/* overload */;
static _di_ITask __fastcall Join(const System::Sysutils::_di_TProc AProc1, const System::Sysutils::_di_TProc AProc2)/* overload */;
static _di_ITask __fastcall Join(const System::Sysutils::_di_TProc AProc1, const System::Sysutils::_di_TProc AProc2, TThreadPool* APool)/* overload */;

Propriétés

Type Visibilité  Source Unité  Parent
function public
System.Threading.pas
System.Threading.hpp
System.Threading TParallel


Description

TParallel.Join regroupe les procédures de manière à ce que chacune puisse être exécutée dans des threads parallèles.

L'exécution dans des threads parallèles de deux procédures ou plus reçues par TParallel.Join dépend des ressources de threads disponibles.

Chaque surcharge de TParallel.Join offre différentes fonctionnalités et informations en fonction de la liste de paramètres donnée.

Toutes les surcharges de TParallel.Join renvoient une instance d'interface de type ITask dont la propriété Status permet de déterminer à quel moment les procédures impliquées avec TParallel.Join se sont terminées, si elles sont toujours en cours d'exécution, si elles n'ont pas pu être terminées, etc.

Lorsque la surcharge de TParallel.Join comporte un paramètre Sender, l'appelant transmet un objet qui est envoyé aux instances de TNotifyEvent lorsqu'il est exécuté, comme cela se produit avec les autres gestionnaires d'événement dans RAD Studio. Les surcharges de TParallel.Join n'impliquant pas un paramètre Sender exécutent des procédures conformes au type TProc, c'est-à-dire des procédures sans paramètres ni valeurs de renvoi.

Lorsque le paramètre APool de type TThreadPool est spécifié, le créateur du programme contrôles les ressources de threads disponibles pour les événements itérés de TParallel.Join via l'utilisation de ses méthodes TThreadPool.SetMinWorkerThreads et TThreadPool.SetMaxWorkerThreads. Lorsque vous appelez ces méthodes, n'oubliez pas qu'un trop grand nombre de threads simultanés peut générer une surcharge qui diminue ou élimine l'efficacité de l'exécution de routines en parallèle.

Voir aussi