Anylogic - 从一个按钮重新启动模拟
Posted
技术标签:
【中文标题】Anylogic - 从一个按钮重新启动模拟【英文标题】:Anylogic - Restart Simulation from a Button 【发布时间】:2019-06-08 15:06:28 【问题描述】:我想创建一个用户可以在模型执行期间按下的按钮,它会停止模型并从 time = 0 开始再次运行它。
以下代码确实有效,但仅在某些时候有效,有时会在模型挂起之前按两到三下按钮有效。
pauseSimulation();
stopSimulation();
getExperiment().stop();
((Simulation) getExperiment()).button.action();
getExperiment().run();
这有时与 getEngine().getState() = PLEASE_WAIT 相关,但并非总是如此。
我不知道这是时间问题,还是我应该做的事情的顺序略有不同,或者措辞不同。
非常感谢任何指针。
【问题讨论】:
您能否说明一下您第一次是如何开始实验的?您是使用按钮开始第一次运行还是自动开始运行?在 AnyLogic 帮助菜单中有一段代码 sn-p 关于如何在不需要按下按钮的情况下自动开始实验。你如何开始第一个会影响我建议你如何实现这个按钮。我假设这个重启按钮在 Main 上(或在模型实例中而不是在实验屏幕上)。 嗨。运行是,1) 从 Anylogic 菜单栏上的“绿色圆圈上的白色播放符号”开始,2) 然后按下 Simulation: Main 上的运行按钮。我想将代码放在后面的按钮位于 Main 上,因此在模型运行时可以访问。 【参考方案1】:在您的按钮操作中使用
getExperiment().stop();
在您的模拟实验属性的 Java Actions 部分中,将以下内容添加到 After Simulation Run:
run();
【讨论】:
以上是关于Anylogic - 从一个按钮重新启动模拟的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在 iPhone 模拟器上点击菜单按钮然后重新启动应用程序后查看日志记录?
当我们在android中使用backstack返回上一个片段时,上一个片段正在重新启动