如题,我测试时,只执行了一次,第二次卡住时间到后,没有调用超时判断,特请教一下,代码如下:
'/**********线程控制*******
Dim 检测线程
Thread.SetShareVar "是否卡主", false
检测线程 = Thread.Start(test_thread)
call 超时判断()
Do
'其它点击,手动点击控制画面变动,主要测试此线程
Delay 3000
Loop
Sub 超时判断()
Do
Delay 500
If Thread.GetShareVar("是否卡主") = true Then
TracePrint "卡着超过10秒,结束线程"
Delay 5000
Thread.Stop (检测线程)
TracePrint "线程停止,等待处理"
Delay 5000
Call 超时处理()
Delay 15000
检测线程 = Thread.Start(test_thread)
TracePrint "线程已重新启动"
Exit Do
End If
Loop
End Sub
Sub 超时处理()
Delay 2000
KillApp "com.tencent.feiji"
Delay 3000
Delay 3000
RunApp "com.tencent.feiji"
End Sub
Sub test_thread()
Dim 起始颜色1 = GetPixelColor(340,1043)
Dim 起始颜色2 = GetPixelColor(657,778)
Dim 秒数 = 0
Do
Delay 1000
Dim 结束颜色1 = GetPixelColor(340,1043)
Dim 结束颜色2 = GetPixelColor(657,778)
If 起始颜色1 = 结束颜色1 And 起始颜色2 = 结束颜色2 Then ' And 起始颜色2 = 结束颜色2
秒数 = 秒数 + 1
If 秒数 > 15 Then
Thread.SetShareVar "是否卡主", true
Delay 2000
Exit Do
End If
TracePrint "界面已经" & 秒数 & "秒没变了"
Else
TracePrint "界面变化了,说明脚本还在正常运行"
起始颜色1 = GetPixelColor(340, 1043)
起始颜色2 = GetPixelColor(657,778)
秒数 = 0
End If
Loop
End Sub
'*/*********线程控制*******