终止线程的问题(50分)

  • 主题发起人 主题发起人 aaazzzxxx
  • 开始时间 开始时间
A

aaazzzxxx

Unregistered / Unconfirmed
GUEST, unregistred user!
我在主程序中创建线程
mainthread:=tmainthread.create;
结束时:
mainthread.Terminate;
在进度条窗口中点击停止按钮设置mainthread.Terminate;
而在TmainThread.Execute;中
判断停止是用
if terminated then
exit;
但是不管我按不按停止按钮,terminated值始终是true,请问是为什么?
create事件只写了一句话:
constructor TmainThread.Create;
begin
inherited Create(false);
end;
 
在excute里一直是这样写的 似乎没有出什么错
while not trminateddo
begin
...
end;
 
换成mainthread.destroy试试
执行完TERMINATE当然TERMINATED属性是TRUE了!
 
>>不管我按不按停止按钮,terminated值始终是true
没有执行terminate,terminated值是true这可能吗?你试着这样测试:
if terminated then
begin
showmessage('123');
exit;
end else

showmessage('456');
不过在线程里面使用showmessage要小心,不要用得太多,否则通常都会死机的。
我想可能是你在线程结束之后判断的吧,所以terminated一直为true

 
后退
顶部