ダウンロード専用の別のスレッドで Delphi プログラムからファイルをダウンロードしたいと考えています。
問題は、メイン プログラムがいつでも閉じられる可能性があることです (したがって、ダウンロード スレッドもいつでも終了される可能性があります)。そのため、接続がない場合やサーバーが貴重な数秒間遅延した場合でも、ダウンロード スレッドを 1 ~ 2 秒以内に終了する方法が必要です。
皆さんはどの機能を使うのがオススメですか?
InterOpenURL/InternetReadFile を試してみましたが、タイムアウト パラメータがありません。非同期バージョンはありますが、動作する Delphi の例が見つかりませんでした。また、非同期バージョンがハングから保護してくれるかどうかもわかりません...
以前からソケットの使用を勧められていましたが、TClientSocket にもタイムアウト機能がないようです。
ユーザーのコンピューターでインターネット接続の問題が発生したり、Web サーバーの動作が遅くなったりしても、アプリケーションを閉じる前にハングしないように、十分に準備する必要があります。
サードパーティのコンポーネントも Indy も使用したくないということを回答する際は、心に留めておいてください。サンプルコードは大歓迎です。
ありがとうございました!