TC官方合作论坛

 找回密码
 立即注册
查看: 5409|回复: 13

[已解决] t c线程关闭以后,里面的死循环会停止吗?

[复制链接]
发表于 2017-8-28 10:21:22 来自手机 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如题,线程关闭之后死循环还在运行
回复

使用道具 举报

发表于 2017-8-28 14:56:17 | 显示全部楼层
jia6822011 发表于 2017-8-28 14:44
按道理说是应该停止的,但是事实是没有停止。线程关闭后循环还在执行,只有进程关闭后循环才结束。好像是 ...

线程id搞错了
回复 支持 反对

使用道具 举报

发表于 2017-8-29 16:50:40 来自手机 | 显示全部楼层
这个有什么难的。防止线程重启动就行。

功能 启动_热键()
var bool = 线程获取状态(线程ID)
if(bool == false)
  线程ID = 线程开启("执行", "")
else
  messagebox("线程执行中,不要重复启动.")
end
结束
功能 终止_热键()
  线程关闭(线程ID)
结束
回复 支持 1 反对 0

使用道具 举报

发表于 2017-8-28 20:18:52 | 显示全部楼层
jia6822011 发表于 2017-8-28 15:48
刚才测试了,线程关闭之后循环会关闭的,应该是线程句柄搞错了,还需要再检查 ...

情况1:
1.线程多次 调用就会存在多个线程 和线程句柄
2.出现第1个情况后  你关闭时只会关闭最后1次调用的线程句柄
解决需要把调用多次线程句柄存起来   关闭时一次关掉
或者自己小心点   不要启用第2次线程开启

情况2:
死循环可能需要加点延迟,例如死循环按数字1一段时间后 ,由于没延迟会导致几分内按几千次数字1,就算关闭线程, 死循环停止了,  但由于物理按1有延迟没有按够几千次数字1,  所以电脑会继续按够几千次数字1才会停止
简单的说脚本死循环过快, 电脑没完全反应完毕, 就算你把脚本强制关闭, 电脑也会继续反应没执行完的命令
回复 支持 1 反对 0

使用道具 举报

发表于 2017-8-28 14:04:48 | 显示全部楼层
循环放在线程里面执行的,那么线程关闭,循环自然停止
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-28 14:44:13 | 显示全部楼层
2576605471 发表于 2017-8-28 14:04
循环放在线程里面执行的,那么线程关闭,循环自然停止

按道理说是应该停止的,但是事实是没有停止。线程关闭后循环还在执行,只有进程关闭后循环才结束。好像是这样,你可以测试一下看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-28 15:20:22 | 显示全部楼层

线程句柄没错的,每次线程开启之后线程句柄就放在数组里面,停止的时候根据数组取出的线程句柄来关闭的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-28 15:48:21 | 显示全部楼层

刚才测试了,线程关闭之后循环会关闭的,应该是线程句柄搞错了,还需要再检查
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-30 09:23:03 | 显示全部楼层
cjxdn 发表于 2017-8-28 20:18
情况1:
1.线程多次 调用就会存在多个线程 和线程句柄
2.出现第1个情况后  你关闭时只会关闭最后1次调用的 ...

瓦萨,大神解释的很到位
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-30 09:39:04 | 显示全部楼层
剑仙十号 发表于 2017-8-29 16:50
这个有什么难的。防止线程重启动就行。

功能 启动_热键()

不错,很实用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-6 04:16 , Processed in 0.053394 second(s), 24 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表