没必要用Timer,自己写个线程,按时触发就行了。在线程的Execute方法中(Tasks就是需要触发的任务,由Interval属性记录间隔):B := GetTickCount;while not Terminated dobegin for I := 0 to High(Tasks) do begin if GetTickCount - Tasks.LastRunTime > Tasks.Interval then begin Tasks.LastRunTime := GetTickCount; Call Task.Run; //异步执行,避免阻塞其他任务的调度 end; end;end;随手写的代码,大概意思就是这样了。