我设置timer1.enabled := false;后,当OnTimer事件中未执行完时,还是会执行下面的语句。
有没有方法可以直接停止执行。不管下面的语句有没有执行。
谢谢。
有没有方法可以直接停止执行。不管下面的语句有没有执行。
谢谢。
解决方案 »
- 怎么在excel画饼图呢?
- 2010再发求职贴,跟请大家顶一顶
- 高手帮帮忙,小弟感激不尽!!!!急急急急,在线等
- delphi 怎么写DOS程序,就是dos命令行。TP的函数
- 求一个自动加空格的函数。。一个字后面加一空格。。。。。
- 安装Report Machine时提示:file not found 'FLEdit.dcu'......
- 注册表问题;有一二进制键值,在注册表编辑器里看到是’D2 07 0C 00 00 00 0D 00’,如何取得这串字符?
- 如何把一个结构一次性清空?
- SQL2000如何建立T-SQL语句的任务(每天一次)将(日期〈当前日期-2)的记录删除???
- dbchart的使用
- DBGrid
- 截取字符串中的某段字串
procedure TForm1.Timer1Timer(Sender: TObject);
var
i: Integer;
begin
if not Timer1.Enabled then
Exit; for i := 0 to 999 do
begin
if not Timer1.Enabled then
Exit;
end;
end;
所以timer事件里面不能使用比较耗时的操作,特别是不能有耗时超过timer的时间间隔的操作。
也就是,如果ontimer事件正在执行,就不可能执行其它代码段
如果timer1.enabled所在的段在执行,那么ontimer事件也肯定不在执行
除非你在线程中操作VCL控件,但VCL是非线程安全的,这样做很危险