好像不支持异步执行组件?

动作开发 · 1551 次浏览
huasio 创建于 2024-05-22 19:04

我原以为这个步骤组件的多线程是异步的,没想到是在步骤里面使用多个线程来处理,但是相对于步骤外面还是进入的阻塞状态。

难道没有办法使用异步的方式吗?有些时候想进入后台监听后续的操作,比如进入了连续操作,然后想监听Esc按键来结束连续操作。

有的组件不支持esc结束,所以需要自行实现,这就要进入后台来监听按键了。我想到异步可以实现这一点,但是没有找到异步办法。

 


回复内容
CL 2024-05-22 20:53
#1

把所有要并行的都放在步骤组内,这样它们就可以同时运行。 

不过通常不建议使用多线程,只有网络请求之类IO密集型的场景才是合适的。

huasio 回复 CL 2024-05-23 13:27 :

看起来不是什么好处理方法,有什么可以做到常驻内存活动的吗?像这类需要对后续操作进行实时监听的,没有异步来处理确实不好办。

CL 回复 huasio 2024-05-23 16:04 :

没有太懂你的需求场景。建议详细说明一下以便理解。

FaniX 2024-05-23 21:03
#2

可以考虑在一个多线程步骤组里面放三个步骤组:

  1. 第一个运行要继续执行的命令
  2. 第二个等待esc键,等到后修改状态变量flag的值
  3. 第三个按一定时间间隔循环读取状态变量flag的值,检测到修改后终止动作

如果担心多个实例之间状态变量冲突,可以每个实例设置/读取不同的动作状态值

我之前想要移动无边框的webview窗口,用的是这个办法。不过要是有更加合理的做法就更好了。

回复主贴