|
在派生线程类中,最后要说的是:经常检查Terminated属性。因为正常的线程结束方式是执行完线程代码返回(不是返回主线程,是返回操作系统)后即结束。所以,如果要在线程中执行长时间的操作又需要能随时中断,推荐的办法是将长时间的操作分成很多短的操作(时间限制为在交互操作中表现的延时在可以接受的范围内,如可以接受在按下取消按钮后一秒钟内取消操作,则短操作的时间不能长于一秒钟),然后用循环来执行这些短操作,并且在每次循环时检查Terminated属性,一旦检测到Terminated为true,就可以立即取消操作。通常用下面这样的代码来实现:
procedure TDemo1Thread.Execute;
begin
While ( Not Terminated ) Do
Begin
// 短操作
End;
end;
<未完待续>
上一页 [1] [2] [3] |