单例动作能否再次点击按钮时终止当前正在运行的单例动作

使用问题 · 1354 次浏览
HumbleCoder 创建于 2020-11-19 14:57

前提:动作A、B、C正在运行,其中A为单例模式的动作

触发:点击A动作按钮

目前:弹出《动作 A 已在执行》

期望:运行中的动作A被中止,动作B、C不受影响照常运行

 

以上要怎么实现,动作内部该怎么判断


回复内容
CL 2020-11-19 16:29
#1

不支持这样的操作。单例是禁止重复运行,不能停止先前的动作。

这里也没有十分明确的方法来实现这个需求。 有一个思路是在动作启动的时候生成一个随机数写在某个位置,然后定期读取它,如果变化了,说明有新的实例运行了,就退出当前动作。

HumbleCoder 2020-11-19 22:49 :

那如果放开单例限制,怎么实现再次点击按钮时让正在运行的动作A1以及刚才打开的动作A2一起被中止,而动作BC不受影响呢

HumbleCoder 2020-11-19 22:57 :

就是变成一个伪单例,没有运行中的A时,该A正常运行,有已运行的A时,把已运行的A1中止然后本身A2也中止

CL 回复 HumbleCoder 2020-11-20 07:32 :

我上面说的就是前一个实例退出的办法。 不过总是比较麻烦的,尽量避开这种方式比较好。

回复主贴