如何通过代码终止AnyLogic中周期性超时触发事件的执行?
如何通过代码终止AnyLogic中周期性超时触发事件的执行?
嘿,我之前也碰到过完全一样的需求!在AnyLogic里要终止这种周期性超时触发的事件,其实用自带的方法就能轻松搞定,不用瞎试那些没用的操作~
首先你得先给你的事件对象起个清晰的名字——比如在事件的属性面板里,把默认的event1改成myCyclicTimeoutEvent之类的,这样写代码的时候不容易搞混。
等你的特定条件满足时,直接在代码块里写这行就行:myCyclicTimeoutEvent.cancel();
这个方法会立刻终止该事件的所有后续触发,不管它下一次原本该什么时候执行,绝对能做到“asap”的要求。
另外补充个小技巧:如果之后你还需要重新启动这个事件,直接调用myCyclicTimeoutEvent.restart();(会按原周期重新开始)或者myCyclicTimeoutEvent.schedule();(可以自定义延迟时间再启动)就好。
你之前试了各种方法没用,大概率是没正确引用到事件对象——比如没给事件命名,或者调用方法时写错了对象名称,按上面的步骤来肯定没问题!
备注:内容来源于stack exchange,提问作者FroggyJoggy
相关产品推荐
相关产品推荐

