在 Anylogic 中暂停然后恢复模拟

Posted

技术标签:

【中文标题】在 Anylogic 中暂停然后恢复模拟【英文标题】:Pause then resuming simulation in Anylogic 【发布时间】:2022-01-13 22:32:09 【问题描述】:

我想给用户一个按钮,让他们在模拟中向前跳 1 小时,然后如果单击播放,则继续运行模型。下面的代码允许用户向前跳一个小时,但是当点击播放时他们无法恢复模拟。

double nextHour = time() + 60;
pauseSimulation();
getEngine().runFast(nextHour); //Runs the model to the next hour when button is clicked

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

尝试在最后一行之后添加runSimulation()。但很可能,这行不通。在这种情况下:

创建一个动态事件(不是正常事件),在其操作代码中使用 runSimulation() 行。

在按钮代码中,在runFast... 行之前,写上create_MyDynamicEvent(1, HOUR)。这将在 1 小时后触发并取消暂停模型。

【讨论】:

【参考方案2】:

AnyLogic Support 建议了以下我使用过的解决方案:

很遗憾,Ben 的建议没有奏效;使用pauseSimulation() 时似乎会导致问题。

【讨论】:

公平,谢谢分享 您能否将评论从您的答案中移到@Benjamin 答案下的评论中?这将使未来的读者在查看答案时更容易理解反馈的上下文。

以上是关于在 Anylogic 中暂停然后恢复模拟的主要内容,如果未能解决你的问题,请参考以下文章

在 iphone 中暂停和恢复 CLLocation 跟踪

在 Web 应用程序 flex 中暂停和恢复下载

暂停动画旋转,设置角度值,然后稍后恢复?

iOS7 CLLocationManager 暂停更新并且不会恢复

在 Activity 内部,如何暂停 for 循环以调用片段,然后在按钮单击片段后恢复循环以重新开始

在 C# 中暂停/恢复线程