对于状态变量,请问状态的更新时机是动作结束后再更新,还是动作内有变化就即时更新呢?

使用问题 · 1746 次浏览
blanka 创建于 2024-09-09 12:56

做了一个有时会运行多个实例的动作,有时对变量的更新似乎没有生效,猜测可能是多实例有时会出现【先来后到】的情况,即先运行的实例后结束,如果状态的更新时机是动作结束后再更新,这就导致后运行的实例对状态的更新内容被覆盖了,于是前来询问确认

blanka 最后更新于 2024/9/9

回复内容
CL 2024-09-09 13:14
#1

是的,动作在启动的时候初始化变量的值,在结束的时候写入状态,中间如果更新了,也可能会写入状态。

如果需要多个实例运行,通常不要依赖状态变量,可以改成手动的状态存取。

blanka 回复 CL 2024-09-10 01:32 :

请问对于词典或表格这种表单类型的变量,能否每次更新只更新一部分内容,例如只更新词典的一个键而不影响其他的键。因为动作的每个实例影响的是不同的键,如果只更新本实例所影响的键,就不会覆盖其他实例的更新了

CL 回复 blanka 2024-09-10 08:30 :

在内存中是更新一个键的。 但是不同动作的变量是不同的实例,互相并不共享,也没法通过状态同步的。

如果需要访问相同的数据,可以考虑用数据库的方式,sqlite。

blanka 回复 CL 2024-09-10 13:02 :

大致了解了下确实,数据库的方式很符合我的需求,感谢指点

回复主贴