使用运行条件暂停/停止AnyLogic仿真模型出现engine无法解析错误如何解决
错误成因
engine不是AnyLogic的全局可调用变量,它是模型根代理(Main)的内置成员,只有在Main代理的代码上下文、或显式持有Main实例引用的位置才能直接访问。你当前编写代码的位置不满足这个条件,因此编译器无法识别engine变量。
解决方法
根据代码所处位置选择对应方案即可:
- 代码写在Main代理内部时,调用内置的
getEngine()方法获取引擎实例:
if (self.count() >= Total_Input) { getEngine().pause(); }
- 代码写在自定义智能体、资源库模块、非Main的其他代理内部时,先获取Main实例再调用引擎方法:
if (self.count() >= Total_Input) { get_Main().getEngine().pause(); }
- 如果你需要的是彻底终止模型运行而非暂停,将
pause()替换为stop()即可。
内容的提问来源于stack exchange,提问作者Zag.D
相关产品推荐
相关产品推荐

