AnyLogic调用inject后报trying to start statechart twice错误求解
trying to start statechart twice 报错原因 - 你创建的归属于
cannonballPorts群体的Cannonball代理实例,在被加入群体时已经完成了自身状态图的初始化启动逻辑。调用Source组件的inject()方法注入该代理时,Source会默认对传入的代理执行全量初始化操作,其中包含状态图启动步骤,两次启动状态图的操作冲突,触发该报错。 - 若你未提前创建代理实例,而是直接调用
inject()方法触发代理生成,需检查Source组件是否同时开启了自动生成代理的配置,自动生成逻辑和手动inject()逻辑同时触发了同一代理实例的状态图启动。 - 额外排查方向:检查Cannonball代理的
On startup事件、cannonballPorts群体的On add事件中是否存在手动启动状态图的自定义代码,该逻辑会和Source的默认初始化逻辑产生冲突。
内容的提问来源于stack exchange,提问作者Alberto Bertoncini
相关产品推荐
相关产品推荐

