还是我给你代码吧。
Dimenv Finish,TimeOver //定义环境变量,作为两个线程是否结束标志
//先开启两个线程
CountdownID = BeginThread(Countdown(30)) //开启30秒倒计时线程
YourFunctionID = BeginThread(YourFunction())
//主程序
While True
If Finish = 1 Or TimeOver = 1 Then //如果其中一个线程结束
StopThread CountdownID
StopThread YourFunctionID //停止线程
Delay 5000 //为了看效果,我故意设长时间了,实际设100ms就行了。
CountdownID = BeginThread(Countdown(30)) //重新开启线程
YourFunctionID = BeginThread(YourFunction())
End If
Delay 100 //适当延时,减少CPU负担
Wend
Sub YourFunction() //定义你要执行的功能进程,这里我随便写一段代码
Finish = 0
For i = 1 To 20
Delay 500
MessageBox "12"
Next
Finish = 1
End Sub
Sub Countdown(t) //定义倒计时进程
TimeOver = 0
While t >= 0
Call Plugin.Msg.Tips("剩下" & t & "秒")
Delay 1000
t = t - 1
Wend
TimeOver = 1
End Sub
当然要用到环境变量,写个例子希望对你有帮助。
Dimenv 主线程是否结束, 出错, t
主线程是否结束 = 0
出错 = 1 '模拟出错
t = timer '计时
BeginThread 主线程()
BeginThread 分线程()
Sub 主线程()
While 出错 <> 0
Delay 2000
出错 = 0
Wend
主线程是否结束 = 1
End Sub
Sub 分线程()
Delay 3000
While 主线程是否结束 = 1
主线程是否结束 = 0
Delay 3000
Wend
MsgBox timer-t
End Sub