用quicker实现多线程(指的是同时在一个动作内同时运行多个子程序这个意思,不是CPU多线程)的需求确实困难,看了CL大大的社区回复后也清楚多线程容易造成冲突,难以解决。就没有办法了吗?一番思索后我想到一个点子:何不善用动作页呢?
以下是我的设想:创建一个多线程动作时,自动创建一个(甚至可以是多个)虚拟的动作页,而动作本身就是一个快捷方式。然后在这个虚拟的动作页内,所有的动作都以一种特殊的方式和正常的动作分隔出来(比如说动作ID加个特殊的前缀,或者统一加个属于这个动作页的特殊标识),同时保证分享出去时不会因为ID问题而互相调用失败,然后,就可以把之前想要多线程运行的子程序/步骤组变成一个个动作,放在这个虚拟的动作页内,然后即可快乐的同时运行啦!
同时,最好将他们归入一个进程组,这样方便组管理。比如终止动作就可以整个组或者单个终止。
这里可以拿quicker为例做比喻:“创建一个多线程动作”相当于创建桌面快捷方式,快捷方式打开的主程序“quicker.exe”相当于打开运行虚拟动作页中设定的主程序,然后“QuickerStarter.exe”这些相当于虚拟动作页中的其他动作,可以独立运行,也可以被调用。而“所有的动作都以一种特殊的方式和正常的动作分隔出来”这个功能就相当于将整个quicker复制到其他目录运行也可以正常使用相对路径调用,而不会报错。
看了下,并没有理解,多线程是要实现什么功能,
多线程的描述参见:步骤组 - Quicker (getquicker.net)另外,同类需求可参见:同时运行连个子程序 - Quicker (getquicker.net)