TC官方合作论坛

标题: t c线程关闭以后,里面的死循环会停止吗? [打印本页]

作者: jia6822011    时间: 2017-8-28 10:21
标题: t c线程关闭以后,里面的死循环会停止吗?
如题,线程关闭之后死循环还在运行
作者: 2576605471    时间: 2017-8-28 14:04
循环放在线程里面执行的,那么线程关闭,循环自然停止
作者: jia6822011    时间: 2017-8-28 14:44
2576605471 发表于 2017-8-28 14:04
循环放在线程里面执行的,那么线程关闭,循环自然停止

按道理说是应该停止的,但是事实是没有停止。线程关闭后循环还在执行,只有进程关闭后循环才结束。好像是这样,你可以测试一下看看
作者: 2576605471    时间: 2017-8-28 14:56
jia6822011 发表于 2017-8-28 14:44
按道理说是应该停止的,但是事实是没有停止。线程关闭后循环还在执行,只有进程关闭后循环才结束。好像是 ...

线程id搞错了
作者: jia6822011    时间: 2017-8-28 15:20
2576605471 发表于 2017-8-28 14:56
线程id搞错了

线程句柄没错的,每次线程开启之后线程句柄就放在数组里面,停止的时候根据数组取出的线程句柄来关闭的
作者: jia6822011    时间: 2017-8-28 15:48
2576605471 发表于 2017-8-28 14:56
线程id搞错了

刚才测试了,线程关闭之后循环会关闭的,应该是线程句柄搞错了,还需要再检查
作者: cjxdn    时间: 2017-8-28 20:18
jia6822011 发表于 2017-8-28 15:48
刚才测试了,线程关闭之后循环会关闭的,应该是线程句柄搞错了,还需要再检查 ...

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

情况2:
死循环可能需要加点延迟,例如死循环按数字1一段时间后 ,由于没延迟会导致几分内按几千次数字1,就算关闭线程, 死循环停止了,  但由于物理按1有延迟没有按够几千次数字1,  所以电脑会继续按够几千次数字1才会停止
简单的说脚本死循环过快, 电脑没完全反应完毕, 就算你把脚本强制关闭, 电脑也会继续反应没执行完的命令
作者: 剑仙十号    时间: 2017-8-29 16:50
这个有什么难的。防止线程重启动就行。

功能 启动_热键()
var bool = 线程获取状态(线程ID)
if(bool == false)
  线程ID = 线程开启("执行", "")
else
  messagebox("线程执行中,不要重复启动.")
end
结束
功能 终止_热键()
  线程关闭(线程ID)
结束
作者: jia6822011    时间: 2017-8-30 09:23
cjxdn 发表于 2017-8-28 20:18
情况1:
1.线程多次 调用就会存在多个线程 和线程句柄
2.出现第1个情况后  你关闭时只会关闭最后1次调用的 ...

瓦萨,大神解释的很到位
作者: jia6822011    时间: 2017-8-30 09:39
剑仙十号 发表于 2017-8-29 16:50
这个有什么难的。防止线程重启动就行。

功能 启动_热键()

不错,很实用
作者: konghx    时间: 2017-9-6 22:26
可以问个问题不,多线程可以让鼠标同一时刻点击不同的文本框,然后键盘同时发送不同的字符串到这两个文本框呢?




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1