• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.3.0
软件大小:62.5M
更新时间:5-24

按键精灵iOS版
立即下载

软件版本:1.3.3
软件大小:29.2M
更新时间:06-14

按键精灵Mac版
立即下载

软件版本:1.1.0
软件大小:12.3M
更新时间:12-29

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
发新话题 回复该主题

[安卓版提问] Thread.Stop停止线程,可是停止不了,一直是running状态,这怎么... [复制链接]

1#
如题,我试图用Thread.Stop停止线程,可是停止不了,一直是running状态,这怎么回事儿?如何能强制停止线程?

2#

回复 1楼zxs_76的帖子

注:你好 请提供简洁、扼要、清晰可直接测试的代码结构,并注释以及描述问题所在以及疑问(像这样的提问方式 我们无法提供任何解答或建议)

收徒
----将满
个人QQ:1223116618
3#

回复 2楼n15976906190的帖子

这是我的超时处理,我现在转发工作线程,执行一段时间时间后,一般是3,4个小时,就卡死了,卡死的点也不固定,我想用这个方法杀死线程重起,发现还是停不了线程。

Function 超时处理(商品数量)
Dim 转发线程状态 = zm.ThreadStatus(转发工作线程)
TracePrint "转发工作线程状态为:"&转发线程状态
zm.Delay 200, 300
Dim retryCount = 1
While zm.ArraySearch(Array("running", "waiting", "pending"), 转发线程状态) >= 0
    /*If retryCount >= 3 Then
        TracePrint "停止转发工作线程超过3次!"
        Exit While
    End If*/
TracePrint "停止转发工作线程第"&retryCount&"次!"
zm.Delay 200, 300
TracePrint "此次任务达到休息间隙或耗时超过"&超时/1000&"秒,等待10秒后重新启动,继续上次的进度"
zm.Delay 200, 300
//zm.Execute("kill -9 " & 转发工作线程)
Thread.Stop 转发工作线程
Delay 10000
转发线程状态 = zm.ThreadStatus(转发工作线程)
TracePrint "停止后转发工作线程状态为:"& 转发线程状态
zm.Delay 200, 300
retryCount = retryCount + 1
Wend
//TracePrint "重启前转发工作线程状态为:"&zm.ThreadStatus(转发工作线程)
转发工作线程 = Thread.Start(商品转发, 商品数量)
zm.Delay 500, 1000
TracePrint "重启后转发工作线程状态为:"&zm.ThreadStatus(转发工作线程)
zm.Delay 200, 300
End Function
Function 判断超时(商品数量)
Dim 判定计数 = 0
Do
Dim 转发结束 = Thread.GetShareVar("转发结束")
If 转发结束 Then
Thread.SetShareVar "转发结束", False
Exit Function
End If
If Thread.GetShareVar("休息间隙判断") Then
超时处理 (商品数量)
Thread.SetShareVar "休息间隙判断", False
Thread.SetShareVar "休息间隙", TickCount()
判定计数 = 0
End If
Dim 初始进度 = Thread.GetShareVar("进度值")
Dim retryTime = 超时\(1*60*1000) + 1
Delay 1*60*1000
If 初始进度 = Thread.GetShareVar("进度值") Then
判定计数 = 判定计数 + 1
TracePrint "超时计数器:"& retryTime & "-" &判定计数
zm.Delay 200, 300
Else
/*If zm.ArraySearch(Array("running","waiting","pending"), zm.ThreadStatus(判断线程)) >= 0 Then
    Thread.Stop 判断线程
End If*/
判定计数 = 0
End If
If 判定计数 >= retryTime Then
超时处理(商品数量)
判定计数 = 0
End If
Loop
End Function

发新话题 回复该主题