将多线程中动态生成的timer停止(11分)

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

flyerer1

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个线程中声明了一个定时器(timer),在线程的Execute中将其Enable设为true。在主窗口中:
procedure TForm1.FormCreate(Sender: TObject);
begin
CollTestThread:= TCollectDataThread.Create(500,PaintBox1.Canvas,Chart1);
end;
可想将其停止时,却不行。
procedure TForm1.Button2Click(Sender: TObject);
begin
CollTestThread.Suspend;
Button1.Enabled:=true;
Button2.Enabled:=false;
end;
timer却没有停止。如何在线程Suspend时,Timer也停止?
 
suspend是使线程挂起,也就是说暂停execute这个过程的执行。跟timer没关系的。需手动停止。
 
在 OnTimer 事件里自己停止
if Suspended then
Timer.Enabled := False;
 
多人接受答案了。
 
顶部