我有一个简单的 TTimer 问题,该 TTimer 已启动并在主应用程序线程中执行其 OnTimer 事件,代码如下所示:
procedure TForm1.DoSomeStuff();
begin
OmniLock.Acquire;
try
Parallel.Pipeline.NumTasks(MaxThreads).Stage(StageProc).Run;
if (MyTimer = nil) then
begin
MyTimer := TTimer.Create(nil);
MyTimer.Interval := 60 * 1000; // timer fired every 60 seconds
MyTimer.OnTimer := MyTimerEvent;
MyTimer.Enabled := True;
end;
finally
OmniLock.Release;
end; // try/finally
end;
当我在一个简单的项目/演示中执行代码时,一切正常,但在我的应用程序(使用 Omni Thread Library v3)中,计时器事件永远不会被触发
我很确定它什么都没有,我只是不知道出了什么问题!
我三重检查:MyTimer
在我的代码中只分配一次,它的 OnTimer 事件被正确分配,等等......
我正在使用德尔福 2010
任何人都知道如何解决这个问题?