改成全局不行,还是出现程序终止!~ |
二楼,更新信息专用。 tc简单开发_爱好群: 143358382 (462/500) tc简单开发_爱好群Ⅱ: 433286131 (215/500) tc办公文本_爱好群: 612661895(60/500) 本群大神众多,新手众多。群文件内 资源海量。 希望新手 分享更多笔记,减少重复造轮子的时间。 好编程,齐学习,齐进步。 |
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, 假) |
1.在线程里运行 2.建议把控件的频繁操作改为全局变量 |
我还在循环中加了对控件操作的语句,用控件做的脚本运行提示!以前都没太大毛病最近老是卡死,什么情况? |
GMT+8, 2025-9-19 10:22 , Processed in 0.164695 second(s), 28 queries .
Powered by 海安天坑软件科技有限公司
© 2001-2013 Comsenz Inc.