一个关于多线程超难的问题(50分)

  • 主题发起人 主题发起人 hongya
  • 开始时间 开始时间
H

hongya

Unregistered / Unconfirmed
GUEST, unregistred user!
把程序中比较耗时的地方放到一个新开的线程中,使它在后台运行,但是当打开程序立即退出的时候,程序会崩溃,提示“程序不正常结束”,我想可能是后台线程还没有执行完就退出了程序造成的,如果是这样,那么怎么才能提前结束线程或者等待线程结束再退出程序呢?
 
关闭程序时,判断线程是否为空。不为空则先释放线程再关闭程序
 
Thread.Terminate;
Thread.WaitFor;
Thread.Free;
 
定义一个变量,辅初值为FALSE,当结束时辅为TRUE,,在关闭时判断是否为TRUE,如果不为TRUE就不允许关闭
 
To:luoyanqing119,
这样可能是一个思路,但是在用户看来就是一个问题了。
 
地质灾害:正解!
我已经
 
关闭程序后要销毁线程
procedure TForm1.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if Thread <> nil then
Thread.Terminate;
Application.Terminate;
end;
 
做下记号
 
后退
顶部