下面我们先来看看按键精灵的多线程例子:
Dim s1=Thread.Start(线程1) Dim s2=Thread.Start(线程2) Dim k=0 Do Delay 1000 k = k + 1 If k >= 10 Then Thread.Stop(s1) End If TracePrint "K>>>>"&k If k > 20 Then s2 = Thread.Start(线程1) TracePrint "重启线程1" k=0 End If Loop Function 线程1() Do Delay 2000 ShowMessage "1111111" TracePrint "线程1运行中" Loop End Function Function 线程2() Do Delay 5000 ShowMessage "222222" TracePrint "线程2" Loop End Function
上面是一哥写的一个按键精灵多线程例子。其中线程1和线程2同时运行,,,但是利用了线程ID来控制停止和重启线程1,大家可以把代码贴回去试试就知道逻辑了。需要说明一点的是按键的多线程全部规划与子线程,那么主线程就是代码,但是主线程结束后子线程就自动停止了,
我们用一个DO LOOP循环来实现主线程不停止,
说到多线程,往往对于新手朋友来说比较懵逼,但是线程这东西在脚本开发中的作用很大,也是最常用的功能之一,先说说多线程在脚本开发中的作用
(1).多线程相当于多个脚本同时运行,有时候是非常有用的 比如:卡屏判断 、不定时的广告弹窗
(2).只有把变量设为共享变←量【即使用 命令 Thread.SetShareVar】才能传入多线程里使用,通过 GetShareVar 获取共享变量
(3).多线程内不能用EndScript停止脚本 若线程内使用EndScript 后会提示线程出错线程会停止但是主程序不会停止
想要停止线程必须在主程序使用thread.Stop(线程ID) 命令
(4).如果主线程停止,所有的子线程都会停止
(5).多线程容易造成抢资源,造成手机卡顿,因此使用需要谨慎,使用时可以尽量减少其中一个线程的耗时操作
自测开一两个线程【只是判断变量和一两个多点比色判断点击操作】手机是不会卡的,开太多的话反而影响脚本运行效率
(6).工程师13多线程讲解
(7).下面是把主程序的所有变量传入线程的方法例子
对多线程使用有兴趣的萌新可以看看相信会有所帮助
思路是:把主线程的所有变量装在数组或者表里传进线程里 然后在线程函数里再提取出来就可以使用了
或者把变量写进配置文件中线程函数内再读取
现在大致能了解到线程在脚本中的作用。所以一哥在这里给各位新手朋友们还是要多了解,多尝试线程操作的实践,当你把多线程玩明白了。那么在脚本开发过程中你可以做到的心应手了
陌陌扫号还能扫不