TC官方合作论坛
标题: (收集)为什么按两下启动热键,停止键就会无效。脚本会停不下来。 [打印本页]
作者: 剑仙十号 时间: 2016-8-13 19:49
标题: (收集)为什么按两下启动热键,停止键就会无效。脚本会停不下来。
(收集)为什么按两下启动热键,停止键就会无效。脚本会停不下来。
沙发 言术
关闭线程需要句柄。
按两次热键会启动两个线程,得到两个句柄。
而保存线程句柄的变量只有一个,所以后一句柄会覆盖前一句柄。
前面的线程句柄被覆盖,消失了,这样就没法去关闭。
我一般这样写。稳稳当当的。
var 线程ID, 循环开关
功能 执行()
循环开关 = 1
while(循环开关)
调试输出("111111")
sleep(100)
end
结束
功能 启动_热键()
if(线程ID == "")
线程ID = 线程开启("执行", "")
end
结束
功能 终止_热键()
循环开关 = 0
线程关闭(线程ID)
线程ID = ""
结束
功能 ****_初始化()
线程ID = ""
结束
作者: wang220211 时间: 2016-8-14 22:51
学习了,不过这个循环开关有什么作用啊?
作者: 剑仙十号 时间: 2016-8-14 23:16
wang220211 发表于 2016-8-14 22:51
学习了,不过这个循环开关有什么作用啊?
我学习C语言一直这样写的。
循环开关 做成全局变量,用处很大。
这是脚本的框架,开了几十个线程,脚本从未报错过。
作者: tan0360 时间: 2016-8-15 23:00
循环开关 你可以这样想 你关闭了几个线程 以为 把程序都关闭了没想有个死循环在那循环着 关闭不了 ,通过一个全局 的总开关 ,开关 = 1 ,的时候循环 ,!= 1 跳出,通过条件循环, 他也就不循环了 。所以程序 通过了 然后关闭。
作者: 剑仙十号 时间: 2016-8-19 20:51
本帖最后由 剑仙十号 于 2016-9-8 16:24 编辑
循环无法停止的问题。
楼主 gang19840815 发消息
按停止热键,线程关闭了 ,但循环不能终止,跳不出来。
功能 战士双烈火()
循环(真)
等待(1000)
结束
结束
脚本改成这样:
var 循环开关 //定义全局变量。
功能 执行()
循环开关 = 1
循环(循环开关)
//1234.
结束
结束
脚本时停止,先设置
循环开关 = 0
线程关闭(线程ID)
作者: 剑仙十号 时间: 2016-8-19 20:54
本帖最后由 剑仙十号 于 2016-9-8 16:22 编辑
脚本无法停止的问题。为什么停止键会无效??
带头㊣奋斗中: 17:48:34
等待(50000) 这个等待的时间,能不能写成秒或者分钟
等待(50*1000) 这样就是50秒了吗?
这是错误的写法。
这样写脚本,按停止键脚本有时停止,有时不会停。情况不稳定。
你要这样写:
for(var i=0; i<50; i++)
sleep(1000)
end
| 欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) |
Powered by Discuz! X3.1 |