如何在不延迟循环的情况下延迟案例结构?

How do I put a delay in a case structure without delaying my loop?

抱歉,我不允许 post 我的完整程序 - 公司规则。

我有一部分程序可以读取脚本文件并将计时器值读入该文件。我需要该值来暂停从脚本文件读取下一行,而我知道这样做的唯一方法是这样的:

从字符串扫描函数检索以毫秒为单位的时间并将其插入到延迟函数中。这个问题是,它延迟了我的主循环,并且我有其他定时功能 运行 同时基于从同一脚本文件发出的先前命令,可能需要更多时间 运行。有什么方法可以在案例结构中实例化它,这将暂停读取下一个命令,并让主循环继续?

我的脚本 reader 有一个事件处理程序,因此我的程序的其余部分将 运行 没有它,直到被调用。

这直接提供给嵌套的 case 语句,这些语句直接将数据提供给计时器。感谢您的帮助!

如果我理解正确的话:

  • 你有一个循环运行一直在不间断地执行一些任务
  • 有时,按下一个按钮,这将导致在循环的两次迭代之间执行特殊任务。
  • 一项特殊任务是禁用按钮几秒钟

这是通过以下简化代码完成的。

  • 当按钮被点击并且来自文件的命令是WAIT 30时,当前时间加上30s被写入移位寄存器,并且按钮被禁用变灰。也就是用户点击不了,他竟然看到了这个!
  • 当按钮在100ms内没有被点击时,执行Timeout的情况。 (一次又一次……)在那里,所有应该 运行 总是存在的任务。该案例还检查当前时间是否大于移位寄存器中的时间,并再次re-enables按钮。