質問は、IdHTTP を使用してスレッドに実装された HTTP に関するものです。必要に応じて、スレッドを正常に終了したいと考えています。この目的のために、IdHTTP の HTTPWork イベント内で Terminated プロパティを定期的にチェックします。終了プロパティが設定されている場合、IdHTTP.disconnect メソッドが呼び出され、スレッドが終了します。
これは問題なく動作しますが、次の問題のあるシナリオを検討してください。
何らかの理由で、スレッドの開始時にネットワークがダウンします。タイムアウト後にソケット エラー例外が発生しますが、これも問題ありませんが、タイムアウト期間中は IdHTTP から発生するイベントがないため、終了したプロパティを確認する方法がありません。問題は、接続タイムアウト中に IdHTTP を使用するスレッドを正常に終了する方法です。