我的程序是用delphi编程向步进电机发脉冲,每个发脉冲的过程都是一个耗时的循环,每个循环都是由按钮点击事件来触发,在循环中我用了application.ProcessMessages ;因为如果不用这个语句,当一个循环运行时,则不会任何别的操作,可问题是现在只能有一个循环运行,多个发脉冲的循环不能同时运行,
我先点击一个按钮来触发第一个循环的。也就是一个循环正在运行时,点击触发第二个循环的按钮,
则上一个正在运行的循环就会中止,直到第二个循环运行完后,第一个再继续运行,好像被中断了。
那么如何实现多个发脉冲的循环同时运行呢?在发脉冲时我还多次用到了延时程序:
procedure delay(us:integer); //延时程序US
var start,timeend:int64;
begin
QueryPerformanceCounter(start);
repeat
application.ProcessMessages ;
QueryPerformanceCounter(timeend) ;
until ((timeend-start)>=us);
end;
敬请指教!!!