delay - AnyLogic:停止延迟块中特定代理的延迟
问题描述
在我的过程中,我有一个无限容量的延迟块。延迟块中的代理只有在调用 stopDelay() 时才会被释放。
如果发生事件,我想停止存储在此延迟块中的一些代理的延迟。但是,我只想释放 x 个(可能会有所不同)代理,这些代理在该块中的时间最长。是否有一个功能/技巧或者我必须手动比较延迟块中所有代理的“getElapsedTime(代理代理)”?
提前非常感谢。
解决方案
我建议用Delay
块替换Wait
块。你也可以给它无限的容量。不要使用 stopDelay(),而是使用 free()。
您的代码看起来像这样(其中 x 是您想要通过的代理数量):
int x = 0;
x = 3;
for(int i = 0 ; i < x ; i++) {
wait.free(wait.get(i));
}
此外,请确保wait
在代码中替换为等待块的名称。
推荐阅读
- sql - ASP.NET Windows 身份验证 - 用户“NT AUTHORITY/ANONYMOUS LOGON”登录失败
- javascript - 当我使用 Python (Windows 10) 发送本地文件地址时,我试图找到一种让浏览器读取我的 URL 参数的方法
- sql-server - 如何使用 SSIS 表达式将 dd.mm.yyyy 格式的字符串转换为日期?
- python - Python 3:如何根据范围函数创建列表列表
- java - 安装后第一个应用程序运行时相机无法正常工作
- amazon-s3 - 神社图片上传器未正确安装
- docker - 在 docker-compose 中设置内存限制会出错
- python - 从列表中获取匹配字符串并创建新列表
- python - 有人可以解释这段代码来识别两个数据帧之间的差异吗?
- java - 将私钥放入带有变量的 application.yml