我正在尝试实现以下目标(使用Delphi7):登录到我的程序后,用户获得控制权,但在后台一个单独的线程从互联网下载文件以检查当前许可证密钥是否被列入黑名单。如果是,用户会收到提示并且程序终止。
所以我创建了一个单独的 TThread 类,它使用 InternetOpenURL/InternetReadFile 从网络下载黑名单。
我的问题如下:
如果用户在后台下载完成之前退出我的程序,则许可证管理器线程应由主线程终止。
如果线程完成了它的工作,它应该自动终止。
如果我使用 FreeOnTerminate := true 我不能从主线程终止线程。但除此之外,我怎样才能让线程在完成其工作后释放其资源?
我的另一个问题是:
如果许可证密钥被列入黑名单,我会使用 Synchronize 对应用程序主窗体的某些资源进行处理。
但是我怎么知道用户是否已经关闭了应用程序并且程序是否在主窗体的 FormDestroy 中?如果我在错误的时间同步,可能会导致访问冲突......
谢谢!