定时器是否在运行,而循环是否有效?

时间:2016-06-27 08:06:38

标签: capl canoe

这是我的代码:

setTimer(delay, (SEEDKEY_MAXTRY * SEEDKEY_FREQ) + (LOGIN_MAXTRY * LOGIN_FREQ));
do {
    // waits, until all operations have been executed;  
} while(isTimerActive(delay));

我确切地知道执行命令需要多长时间,因此我将计时器delay设置为显式值。我必须等待,直到我返回一些值。

模拟在这一点上停滞不前,我的面板进入了Windows - "没有响应"我可以通过Taskmanager结束模拟的唯一方法。

我认为唯一的解释是,当我在do ... while语句中时,计时器需要更多时间,或者根本不执行。 (与while {})相同

有人能证实这个想法,或者通过给我解决问题来证明我的错误吗?

1 个答案:

答案 0 :(得分:1)

好的我总能找到一种解决方法,因为CAPL在stackoverflow上并不太受欢迎......

对于读者来说,想知道如何:

我刚刚使用全局状态变量来限制用户执行操作,直到我的处理完成。