TC官方合作论坛

 找回密码
 立即注册
查看: 1110|回复: 5

[其他] (收集)为什么按两下启动热键,停止键就会无效。脚本会停不下来。

[复制链接]
发表于 2016-8-13 19:49:30 来自手机 | 显示全部楼层 |阅读模式

马上加入TC

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

x


(收集)为什么按两下启动热键,停止键就会无效。脚本会停不下来。


沙发 言术

关闭线程需要句柄。
按两次热键会启动两个线程,得到两个句柄。
而保存线程句柄的变量只有一个,所以后一句柄会覆盖前一句柄。
前面的线程句柄被覆盖,消失了,这样就没法去关闭。



我一般这样写。稳稳当当的。
var 线程ID, 循环开关
功能 执行()
  循环开关 = 1
  while(循环开关)
    调试输出("111111")
    sleep(100)
  end
结束

功能 启动_热键()
  if(线程ID == "")
  线程ID = 线程开启("执行", "")
  end
结束
功能 终止_热键()
  循环开关 = 0
  线程关闭(线程ID)
  线程ID = ""
结束
功能 ****_初始化()
  线程ID = ""
结束

回复

使用道具 举报

发表于 2016-8-14 22:51:38 | 显示全部楼层
学习了,不过这个循环开关有什么作用啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-14 23:16:12 来自手机 | 显示全部楼层
wang220211 发表于 2016-8-14 22:51
学习了,不过这个循环开关有什么作用啊?

我学习C语言一直这样写的。
循环开关  做成全局变量,用处很大。
这是脚本的框架,开了几十个线程,脚本从未报错过。
回复 支持 反对

使用道具 举报

发表于 2016-8-15 23:00:12 | 显示全部楼层
循环开关 你可以这样想  你关闭了几个线程 以为 把程序都关闭了没想有个死循环在那循环着 关闭不了 ,通过一个全局 的总开关  ,开关 = 1  ,的时候循环  ,!= 1 跳出,通过条件循环, 他也就不循环了  。所以程序 通过了  然后关闭。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-19 20:51:37 来自手机 | 显示全部楼层
本帖最后由 剑仙十号 于 2016-9-8 16:24 编辑

循环无法停止的问题。
楼主 gang19840815 发消息


按停止热键,线程关闭了 ,但循环不能终止,跳不出来。

功能 战士双烈火()
循环(
)
等待
(1000)
结束

结束


脚本改成这样:

var 循环开关 //定义全局变量。
功能 执行()
循环开关
= 1
循环(循环开关
)
  //1234.
结束

结束


脚本时停止,先设置
循环开关 = 0
线程关闭(线程ID)


回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-19 20:54:59 来自手机 | 显示全部楼层
本帖最后由 剑仙十号 于 2016-9-8 16:22 编辑

脚本无法停止的问题。为什么停止键会无效??


带头㊣奋斗中: 17:48:34
等待(50000) 这个等待的时间,能不能写成秒或者分钟

等待(50*1000) 这样就是50秒了吗?


这是错误的写法。
这样写脚本,按停止键脚本有时停止,有时不会停。情况不稳定。


你要这样写:
for(var i=0; i<50; i++)
sleep(1000)
end


回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-5-16 23:44 , Processed in 0.040872 second(s), 22 queries .

Powered by 海安简单软件服务部

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

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