对线程有研究的DFW请进(100分)

  • 主题发起人 主题发起人 fj218
  • 开始时间 开始时间
F

fj218

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TThd.abc;
begin
...
end;

procedure TThd.Execute;
begin
FreeOnTerminate:=true;
if abc then
TA.edf;
end;

TA为另一个类,如abc和TA.edf过程内都有循环,我想提前终止线程使用了Terminate语句,请问:
1、abc循环中应该能响应Terminated值,而提前终止循环吧?
2、TA.edf循环中应该不能响应TerMinated值,即使把Terminated作为参数传入过程内,应该也没有用吧?
3、假设线程正在执行时,点击窗口关闭(close事件中什么都没写),有时会出现异常。我分析,应该是在关闭窗体时,某些资源可能比线程先释放,而恰巧此时线程访问到这些资源,因此就会出现异常。不知我的分析对否?该如何解决这个问题 。有没有比用Try...except更好的方法
 
1.可以,不过Terminated值不是自动判断的,而是由你自己判断
2.作为var参数传入是可以进行判断的
3.可以写thread.Free释放线程
 
接受答案了.
 

Similar threads

后退
顶部