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

软件版本: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

快捷导航

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

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

[问题] 按键x,多线程脚本无法完全退出 [复制链接]

1#
在按键x中调试 官方多线程demo,代码如下
单击GUI中的按钮 启动 子线程

1、单击脚本GUI右上角的“关闭”按钮,脚本GUI可消失,但按键精灵本身也假死
此时子线程仍会 输出日志,说明 子线程没有中止;
如果F12中止,则子线程和界面都正常。
  1. Global th1
  2. Event Form1.Button1.Click
  3.     th1 = ThreadCreate(Thread1)
  4.     TracePrint "主线程结束"
  5. End Event


  6. Sub Thread1()
  7.     Do
  8.         TracePrint "子线程循环"
  9.         Delay 1000
  10. End Sub
复制代码
2、增加 Form1.UnLoad、OnThreadExit事件,仍不能正常 退出
  1. Event Form1.UnLoad
  2. TracePrint "===========UnLoad=============" & th1
  3.     ThreadStop (th1)
  4.     
  5.     EndScript()
  6.     ExitScript()
  7. End Event
复制代码
3、从日志观察,
OnScriptExit事件并不会执行

按键x帮助上写,GUI主线程 终止后、所有子线程会自动终止
可上述实验结果 没有体现,也许是 代码写的有问题

请问,能否 不用f12,只写代码 完全退出主、子线程


to 1楼:
帮助上说,GUI界面是主线程
那么 单击GUI右上角的“关闭”按钮,不就是 关闭主线程吗?

最后编辑oldajian 最后编辑于 2018-02-25 10:20:24
2#

我对事件不是很熟悉,你只是建立子线程,就说主线程结束了,这是什么逻辑,界面与脚本好像是各自运行的吧。

3#

先把子线程死循环结束,然后关闭窗口

4#

to 3楼
那个循环里,每秒 更新一次 界面上的文字

曾经在每次循环前 判断tag,
然后 关闭线程前 先设置循环tag为 false,照样 假死

发新话题 回复该主题