私のアプリケーションは、Indy HTTP クライアントを使用して、7 つのマーケットプレイスを連続してクエリします。すべてのマーケットプレイスは、リクエスト/レスポンスに対する統一されたインターフェースを提供します。とはいえ、リクエスト/レスポンスの構造は 7 つのマーケットプレイスすべてで同じです。
GTINを MainForm のボックスに送信するTEdit
と、アプリは 7 つの RESTful 要求をマーケットプレイスに送信し、それらすべてに対して XML 応答を返します。
私の考えは、各リクエストを個別のスレッドにラップすることですが、パフォーマンスの問題が本当に心配です。通常、私は 3 ~ 5 秒で 1 つのリクエストを実行します。
各スレッドはfor
ステートメントで作成され、TIdHTTP
オブジェクトを初期化し、要求を作成し、XML 応答を取得して解析し、MainForm に送り返します。
ジョブが完了したら、各スレッドを終了 (または一時停止) する必要があります。スレッドが完全に終了した場合、次の要求で同じ初期化ルーチンを実行する必要があります。一度に7つのスレッドの初期化を想定すると、比較的遅いと思います。
ただし、スレッドが一時停止されている場合、スレッドは単にメモリ内に存在し、すべてのファクトリが初期化され、次の要求を受け入れる準備ができています。
スレッドを操作上終了させたまま、完全に初期化したままにするにはどうすればよいですか? XML 解析オブジェクトが一時停止されたスレッドで生き続ければTIdHTTP
、次の要求でより速く動作すると思います。意味はありますか?