孤
孤云
Unregistered / Unconfirmed
GUEST, unregistred user!
在程序中
procedre TForm1.Timer1Timer(Sender: TObject);
begin
IF 条件1 THEN
BEGIN
Timer1.Enabled:=False;
DoingScan1; //这个过程的执行时间大于Timer1的时间间隔
Timer1.Enabled:=True;
END;
IF 条件2 THEN
BEGIN
Timer1.Enabled:=False;
DoingScan2; //这个过程的执行时间大于Timer1的时间间隔
Timer1.Enabled:=True;
END;
IF 条件3 THEN
BEGIN
Timer1.Enabled:=False;
DoingScan3; //这个过程的执行时间大于Timer1的时间间隔
Timer1.Enabled:=True;
END;
//这三个条件不会同时满足
end;
其中DoingScan1,DoingScan2,DoingScan3是一个不断进行扫描的过程
procedure DoingScan1;
begin
sleep(v1); //要等待一段时间后开始进行扫描,其中V1是变量,根据计算得到
//基准时刻T1,扫描时间长度MaxScanT都是变量
WHILE SecondsBetween(T1,Now)<=MaxScanT DO //这个地方用SecondsBetween是不是
BEGIN //可行
FOR i:=1 TO n DO
BEGIN
.....//判断
.....//计算
.....//数据库读写操作
.....//等等
END;
END;
end;
问题在于执行这段程序的时候,主界面像死了一样!请问有什么问题或者有什么好的解决方法
procedre TForm1.Timer1Timer(Sender: TObject);
begin
IF 条件1 THEN
BEGIN
Timer1.Enabled:=False;
DoingScan1; //这个过程的执行时间大于Timer1的时间间隔
Timer1.Enabled:=True;
END;
IF 条件2 THEN
BEGIN
Timer1.Enabled:=False;
DoingScan2; //这个过程的执行时间大于Timer1的时间间隔
Timer1.Enabled:=True;
END;
IF 条件3 THEN
BEGIN
Timer1.Enabled:=False;
DoingScan3; //这个过程的执行时间大于Timer1的时间间隔
Timer1.Enabled:=True;
END;
//这三个条件不会同时满足
end;
其中DoingScan1,DoingScan2,DoingScan3是一个不断进行扫描的过程
procedure DoingScan1;
begin
sleep(v1); //要等待一段时间后开始进行扫描,其中V1是变量,根据计算得到
//基准时刻T1,扫描时间长度MaxScanT都是变量
WHILE SecondsBetween(T1,Now)<=MaxScanT DO //这个地方用SecondsBetween是不是
BEGIN //可行
FOR i:=1 TO n DO
BEGIN
.....//判断
.....//计算
.....//数据库读写操作
.....//等等
END;
END;
end;
问题在于执行这段程序的时候,主界面像死了一样!请问有什么问题或者有什么好的解决方法