按键精灵多线程,两个线程同时运行,线程2执行完跳转标记,标记执行完跳回来后,线程1不能运行是怎么回事

//主线程DimEnvA,BA=BeginThread(1)B=BeginThread(2)StopThreadA//线程1Sub1i=0Whilei=0IfColor2... //主线程DimEnv A,BA = BeginThread(1)B = BeginThread(2)StopThread A//线程1Sub 1i=0While i=0IfColor 295,759,"D8", 0 Theni = 0Else MoveTo 1354, 649KeyPress "F1", 1Delay 6000i = 0End IfWendEnd Sub//线程2 线程2执行完命令跳转到标记1Sub 2i=0While i=0 XY=Plugin.Color.FindMultiColorEx(223,28,1376,812,"080810","4|0|080810,1|1|6262FF,4|1|6262FF,2|2|0000CB,4|2|0000CB,0|3|080810,4|3|080810",0.9,1)ZB = InStr(XY,"|")X = Clng(Left(XY, ZB - 1)): Y = Clng(Right(XY, Len(XY) - ZB))if X > 0 and Y>0 Then MoveTo X, YMoveR 15, 45Delay 100LeftClick 1Delay 10000i = 0Else //这里是执行完了跳到标记1Goto 标记1i = 1End IfWendEnd Sub//这里是标记1,执行后跳转到标记2Rem 标记1Delay 1000XY=Plugin.Color.FindMultiColor(223,28,1376,812,"FFFF00","5|0|FFFF00,1|3|FFFF00,5|3|FFFF00,7|3|FFFF00,2|5|FFFF00,3|6|FFFF00,7|6|FFFF00,0|7|FFFF00,5|7|FFFF00,10|7|FFFF00",1)ZB = InStr(XY,"|")X = Clng(Left(XY, ZB - 1)) : Y = Clng(Right(XY, Len(XY) - ZB))If X > 0 and Y > 0 Then MoveTo X, YMoveR 10, 19LeftClick 1Delay 800Goto 标记1ElseGoto 标记2End If//这里是标记2,找到执行标记3未找到调用执行完跳到线程2Rem 标记2XY=Plugin.Color.FindMultiColorEx(1296,30,1373,73,"FFFFFF","1|0|000000,7|0|FFFFFF,-22|1|000000,-21|1|FFFFFF,-17|1|FFFFFF,-7|1|000000,-3|1|FFFFFF,3|1|FFFFFF,-21|2|000000,-7|2|FFFFFF,3|2|000000,6|2|FFFFFF,-2|3|000000,0|3|FFFFFF,-21|5|000000,-22|6|000000,-17|6|FFFFFF,-7|6|000000,-3|6|FFFFFF,-21|7|000000,-7|7|FFFFFF,0|7|FFFFFF,1|7|000000,5|7|FFFFFF,6|7|000000,5|8|000000",0.9,1)ZB = InStr(XY,"|")X = Clng(Left(XY, ZB - 1)): Y = Clng(Right(XY, Len(XY) - ZB))If X > 0 and Y > 0 Then Goto 标记3Else Call 线程2End If//这里是标记3,找到执行标记2未找到调用执行完跳到线程2Rem 标记3XY=Plugin.Color.FindMultiColorEx(1296,30,1373,73,"FFFFFF","4|0|FFFFFF,2|2|FFFFFF,4|3|FFFFFF,0|5|FFFFFF,3|6|FFFFFF",0.9,0)ZB = InStr(XY,"|")X = Clng(Left(XY, ZB - 1)) : Y = Clng(Right(XY, Len(XY) - ZB))If X > 0 and Y > 0 Then Goto 标记2Else Call 线程2End If
两个线程同时运行
线程1一直运行
线程2 运行完执行 跳转标记 执行完跳转标记后再调用线程2,
结果线程2可以运行
线程1却停了,这是哪里出问题了
能不能把两个线程合并,然后可以直接跳转到这个合并
展开
 我来答
司马刀剑
高粉答主

2018-10-15 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7497万
展开全部
先确定是线程2无线运行还是子程序2无线循环。
如果是线程问题,就在合适的位置加入停止线程;如果是循环问题就看看每次的XY数值
运行情况应该都是跳出循环后线程停止,线程2无限循环是XY每次查找都大于0,线程1停止是因为坐标点颜色不匹配。
一行一行看:
第2行启动线程A调用自动加血子程序
第5~16行是子程序
6行Z=0

7判断Z数值进入循环
8判断坐标点颜色,如果颜色一样进入9行,不一样则进入11行
如果进入11行,按F1、Z重新赋值、延时之后,进入7判断,判断Z=0不成立,直接15行结束循环,16行结束子程序,然后就不在运行了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式