TC官方合作论坛

 找回密码
 立即注册
查看: 3606|回复: 3

[已解决] 大漠多线程分开绑定

[复制链接]
发表于 2019-8-31 19:27:18 | 显示全部楼层 |阅读模式

马上加入TC

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

x
想用一次全局注册 可以给不同的窗口句柄 绑定  解绑也是 萌新求实例或者源码
回复

使用道具 举报

 楼主| 发表于 2019-11-21 22:12:50 | 显示全部楼层
界面卡死,界面无响应
点击按钮/ 按下热键,为何脚本会卡死?
  
函数调用方式:有同步调用、异步调用、回调调用。同步调用,是以一种阻塞模式来调用。
比如说:
在古代,长城用烽火来传递信息,每个烽火只有亮和暗,两种状态。每个烽火 只能看到相邻烽火的状态。

现在有A、B、C、D四个烽火,A首先点亮,B看到A的烽火亮了,立马去点火,花了2秒时间点亮。
.
但是这时候,负责C烽火的人在睡觉,所有人都在等待C点亮。终于,C睡了2个小时候看到B点亮了,然后去点亮。
.
D烽火,由于长期没有点亮,导致烽火出现问题。整个消息传递过程,都在等待D的完成。

=======================================================
基础知识。函数调用方式,有 :
同步调用(阻塞式)、异步调用(非阻塞)、回调调用。

UI线程,以阻塞模式来调用。
界面事件,同样以阻塞模式来调用。
在界面事件中,如果调用sleep( ) 函数,消息传递无法完成,就会卡住界面。
无论按键精灵,tc简单开发,易语言,,还是C语言,C++,java 都有这种理论。

=======================================================
解决办法。
方法一:用线程开启() 来执行代码。
功能 子函数()
while(1)
traceprint("要循环的代码")
sleep(1000)
end
结束
在界面 按钮/ 热键 事件中,用 线程开启("子函数", "") 来启动线程。

方法二:
tc的等待()函数,sleep(1000,模式=真)
真为阻塞模式,假为非阻塞模式。
参数2 设置为假,就不会卡界面。
sleep(100, false),,等待(100, 假)
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-9-4 23:51:55 | 显示全部楼层
zxczxc1968531 发表于 2019-8-31 21:57
附件上传不了,自己把界面写好,然后源码与界面关联,生成文件夹内创建一个文件夹“ZYML”用于存放大漠插件 ...

谢谢您了 论坛死气沉沉的 非常感谢  拿去学习了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-5 15:08:43 | 显示全部楼层
zxczxc1968531 发表于 2019-8-31 21:57
附件上传不了,自己把界面写好,然后源码与界面关联,生成文件夹内创建一个文件夹“ZYML”用于存放大漠插件 ...

大神你好   我又试了下 不知道怎么回事 现在再用注册不了  提示注册失败  
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-4-26 03:00 , Processed in 0.039266 second(s), 25 queries .

Powered by 海安简单软件服务部

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

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