button - Anylogic - 从一个按钮重新启动模拟
问题描述
我想创建一个用户可以在模型执行期间按下的按钮,它会停止模型并从时间 = 0 开始再次运行它。
以下代码确实有效,但仅在某些时候有效,有时会在模型挂起之前按两到三下按钮。
pauseSimulation();
stopSimulation();
getExperiment().stop();
((Simulation) getExperiment()).button.action();
getExperiment().run();
这有时与 getEngine().getState() = PLEASE_WAIT 相关,但并非总是如此。
我不知道这是时间问题,还是我应该做的事情的顺序略有不同,或者措辞不同。
任何指针都非常感谢。
解决方案
在您的按钮操作中使用
getExperiment().stop();
在您的模拟实验属性的 Java 操作部分中,将以下内容添加到 After Simulation Run:
run();
推荐阅读
- r - purrr::accumulate() 在两个累积变量上,而不仅仅是 1
- c# - 无法通过 Dynamics 365 Web API 从营销列表中删除联系人
- flutter - 如何在颤动的列或行中删除小部件之间的空间?
- python - GRPC 双向流在 1 分钟后关闭,没有消息
- javascript - 基于多个值过滤 JavaScript 数组
- java - 清除 Android 应用程序通知 (Java)
- influxdb - 每小时 InfluxDB 总消息数
- arrays - 数组差异 IF/OR VBA 脚本
- textarea - 如何在屏幕加载时以角度设置文本区域的自动高度
- javascript - 无法在 JSON.parse 中创建长度超过 0x1fffffe8 个字符的字符串?