首页 > 解决方案 > Anylogic - 从一个按钮重新启动模拟

问题描述

我想创建一个用户可以在模型执行期间按下的按钮,它会停止模型并从时间 = 0 开始再次运行它。

以下代码确实有效,但仅在某些时候有效,有时会在模型挂起之前按两到三下按钮。

pauseSimulation();
stopSimulation();
getExperiment().stop();
((Simulation) getExperiment()).button.action();
getExperiment().run();

这有时与 getEngine().getState() = PLEASE_WAIT 相关,但并非总是如此。

我不知道这是时间问题,还是我应该做的事情的顺序略有不同,或者措辞不同。

任何指针都非常感谢。

标签: buttonmodelanylogic

解决方案


在您的按钮操作中使用

getExperiment().stop();

在您的模拟实验属性的 Java 操作部分中,将以下内容添加到 After Simulation Run:

run();

推荐阅读