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*> >());
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | REST.Client.pas REST.Client.hpp |
REST.Client | TCustomRESTRequest |
説明
要求を非同期的に実行します。つまり、専用のスレッドで実行します。
戻り値
AFreeThread
パラメータが False
に設定された場合、このメソッドは、この実行スレッドの参照を返します。
メモ:
AFreeThread
パラメータがTrue
に設定された場合、このメソッドが返す参照は無効です。
パラメータ
このメソッドのパラメータは次のとおりです。
ACompletionHandler
-- 要求の実行が完了した後に実行する無名メソッドを指定します。ASynchronized
-- これがTrue
の場合、ACompletionHandler
に設定されたメソッドはメイン スレッドのコンテキストで実行されます。False
の場合、ACompletionHandler
に設定されたメソッドは実行スレッドのコンテキストで実行されます。AFreeThread
-- これがTrue
の場合、実行スレッドは要求の実行が完了した後に解放されます。
詳細
実行スレッドの実行中は、関与しているすべての TCustomRESTClient および TCustomRESTRequest インスタンスのプロパティに他のスレッド(メイン スレッドを含む)からアクセスしてはいけません。
モバイル プラットフォームでは、ExecuteAsync メソッドを使用することを強くお勧めします。iOS(およびおそらく Android)では、メイン スレッドが応答しないと見なされる場合(つまり、実行中の要求から制御が戻るまでに 1 ~ 2 秒より長くかかる場合)、アプリケーションが終了します。(メイン スレッドのブロッキングに起因する)動作の遅さは、モバイル デバイスでは受け入れられないと考えられます。