TC官方合作论坛

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

[问题] 关于TC单窗口控件多的问题?

[复制链接]
发表于 2018-5-14 11:55:01 | 显示全部楼层 |阅读模式

马上加入TC

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

x
我做了个打精英怪的脚本,只要加入的控件多了,脚本就会出现异常,然后卡死,请问是控件引起的吗?

360截图16530721554164.png
回复

使用道具 举报

 楼主| 发表于 2018-5-14 14:43:31 | 显示全部楼层
我还在循环中加了对控件操作的语句,用控件做的脚本运行提示!以前都没太大毛病最近老是卡死,什么情况?
回复 支持 反对

使用道具 举报

发表于 2018-5-15 06:53:54 | 显示全部楼层
1.在线程里运行
2.建议把控件的频繁操作改为全局变量
回复 支持 反对

使用道具 举报

发表于 2018-5-15 10:33:37 来自手机 | 显示全部楼层
tc简单开发,界面为什么会卡死?

函数调用方式:有同步调用、异步调用、回调调用。
同步调用,是以一种阻塞模式来调用。
比如说:
在古代,长城用烽火来传递信息,每个烽火只有亮和暗,两种状态。每个烽火 只能看到相邻烽火的状态。

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

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

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

=======================================================
解决问题。
方法一:写一个子函数,
功能 子函数a()
while(1)
traceprint("1234")
sleep(1000)
traceprint("5678")
sleep(1000)
end
结束
在界面的 热键/按钮事件中,线程开启("子函数a", "") 来执行代码。

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

使用道具 举报

发表于 2018-5-15 10:37:51 来自手机 | 显示全部楼层
二楼,更新信息专用。
tc简单开发_爱好群:
143358382 (462/500)

tc简单开发_爱好群Ⅱ:
433286131 (215/500)

tc办公文本_爱好群:
612661895(60/500)

本群大神众多,新手众多。群文件内 资源海量。 希望新手 分享更多笔记,减少重复造轮子的时间。 好编程,齐学习,齐进步。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-19 16:33:32 | 显示全部楼层
改成全局不行,还是出现程序终止!~
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-5-29 18:46 , Processed in 0.045964 second(s), 26 queries .

Powered by 海安简单软件服务部

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

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