AnyLogic:停止延迟块中特定代理的延迟
AnyLogic: stop Delay for a specific agent in the delay block
在我的进程中,我有一个无限容量的延迟块。延迟块中的代理只有在调用 stopDelay() 时才会被释放。
如果发生事件,我想停止延迟存储在这个延迟块中的一些代理。
但是,我只想释放在块中时间最长的 x(可以变化)代理。
是否有 function/trick 或者我是否必须手动比较延迟块中所有代理的“getElapsedTime(代理代理)”?
非常感谢。
我建议用 Wait
块替换 Delay
块。你也可以给它无限容量。不要使用 stopDelay(),而要使用 free()。
您的代码看起来像这样(其中 x 是您要经过的代理数):
int x = 0;
x = 3;
for(int i = 0 ; i < x ; i++) {
wait.free(wait.get(i));
}
此外,确保将代码中的 wait
替换为等待块的名称。
在我的进程中,我有一个无限容量的延迟块。延迟块中的代理只有在调用 stopDelay() 时才会被释放。
如果发生事件,我想停止延迟存储在这个延迟块中的一些代理。 但是,我只想释放在块中时间最长的 x(可以变化)代理。 是否有 function/trick 或者我是否必须手动比较延迟块中所有代理的“getElapsedTime(代理代理)”?
非常感谢。
我建议用 Wait
块替换 Delay
块。你也可以给它无限容量。不要使用 stopDelay(),而要使用 free()。
您的代码看起来像这样(其中 x 是您要经过的代理数):
int x = 0;
x = 3;
for(int i = 0 ; i < x ; i++) {
wait.free(wait.get(i));
}
此外,确保将代码中的 wait
替换为等待块的名称。