REST.Client.TCustomRESTRequest.ExecuteAsync
Delphi
function ExecuteAsync(ACompletionHandler: TCompletionHandler = nil; ASynchronized: Boolean = True;
AFreeThread: Boolean = True; ACompletionHandlerWithError: TCompletionHandlerWithError = nil): TRESTExecutionThread;
C++
TRESTExecutionThread* __fastcall ExecuteAsync(System::Sysutils::_di_TProc ACompletionHandler = System::Sysutils::_di_TProc(), bool ASynchronized = true, bool AFreeThread = true, System::DelphiInterface<System::Sysutils::TProc__1<System::TObject*> > ACompletionHandlerWithError = System::DelphiInterface<System::Sysutils::TProc__1<System::TObject*> >());
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
function | public | REST.Client.pas REST.Client.hpp |
REST.Client | TCustomRESTRequest |
Description
Exécute une requête de manière asynchrone, c'est-à-dire qu'elle l'exécute dans son propre thread.
Valeur renvoyée
Lorsque le paramètre AFreeThread
est défini sur False
, cette méthode renvoie une référence à ce thread d'exécution.
Remarque : Si le paramètre
AFreeThread
est défini surTrue
, la méthode renvoie une référence non valide.
Paramètres
Cette méthode définit les paramètres suivants :
ACompletionHandler
-- Spécifie une méthode anonyme devant s'exécuter à la fin de l'exécution de la requête.ASynchronized
-- Lorsque la valeur vautTrue
, spécifie que la méthode définie dansACompletionHandler
s'exécute dans le contexte du thread principal. Lorsque la valeur vautFalse
,ACompletionHandler
s'exécute dans le contexte du thread d'exécution.AFreeThread
- Lorsque la valeur vautTrue
, le thread d'exécution est libéré à la fin de l'exécution de la requête.
Détails
Pendant l'opération du thread d'exécution, les propriétés de toutes les instances TCustomRESTClient et TCustomRESTRequest impliquées doivent rester inaccessibles pour les autres threads (notamment le thread principal).
L'utilisation de la méthode ExecuteAsync est fortement recommandée sur les plates-formes mobiles. iOS, et surtout Android, arrêtent une application s'ils considèrent que le thread principal ne répond plus, c'est-à-dire lorsque l'exécution d'une requête dure plus d'une seconde ou deux. Cette lenteur (provoquée par le blocage du thread principal) est considérée comme inacceptable sur les périphériques mobiles.