私は次のことを達成しようとしています(Delphi7を使用):プログラムにログインした後、ユーザーは制御を取得しますが、バックグラウンドで別のスレッドがインターネットからファイルをダウンロードして、現在のライセンスキーがブラックリストに登録されているかどうかを確認します. そうである場合、ユーザーはプロンプトを受け取り、プログラムは終了します。
そこで、InternetOpenURL/InternetReadFile を使用してネットからブラックリストをダウンロードする別の TThread クラスを作成しました。
私の問題は次のとおりです。
バックグラウンドでのダウンロードが完了する前にユーザーがプログラムを終了した場合、ライセンス マネージャー スレッドはメイン スレッドによって終了される必要があります。
スレッドがジョブを完了した場合、スレッドは自動的に終了するはずです。
FreeOnTerminate := true を使用すると、メイン スレッドからスレッドを終了できません。しかし、それ以外の場合、スレッドがジョブを完了した後にリソースを解放するにはどうすればよいでしょうか?
私の他の質問は次のとおりです。
ライセンス キーがブラックリストに登録されている場合は、Synchronize を使用して、アプリケーションのメイン フォームの特定のリソースを処理します。
しかし、たとえば、ユーザーが既にアプリを閉じていて、プログラムがメイン フォームの FormDestroy にあるかどうかを知るにはどうすればよいでしょうか? 同期するタイミングを間違えると、アクセス違反が発生する可能性があります...
ありがとう!