书香 发表于 2023-5-18 19:43

【时钟与多线程】

本帖最后由 书香 于 2024-2-10 04:18 编辑

时钟组件我们在 011:【认识时钟组件】    已经讲过,而时钟本身也属于多线程,因为时钟在执行功能的时候是单独进行的,不与其他的子程序存在先后等待关系,本节主要讲解一下时钟的一种特殊用法,使得其与启动线程()的作用几乎一致


理论,时钟和启动线程()均为多线程操作。但是区别在于,时钟是一个定时器,会每过一个周期就执行一次,但是启动线程()只会加载一次子程序,也就是说我们只需要让时钟执行一次就可以了,写法如下
.版本 2
.支持库 spec

.子程序 __启动窗口_创建完毕

时钟1.时钟周期 = 1

.子程序 _时钟1_周期事件

时钟1.时钟周期 = 0
调试输出 (123)


这种写法不是很规范,但是在很多时候效果还是很明显的

难点:
时钟是对某段代码周期性执行,启动线程启动的子程序里面有死循环,死循环的本质也是对某段代码重复运行,2者有何区别?
区别在于,在子程序内部对于时钟而言依旧是并列执行的,也就是时钟周期一到,时钟周期就会被调用一次,但是死循环内部是存在等待关系的,需要等这段代码执行完毕才可以进行下一次循环

注:
在实际使用中,一般情况建议使用启动线程(),死循环内部添加延时(),因为时钟周期是并列执行的,可能出现内存过高导致的程序卡死情况

(点击返回课程目录:https://www.52hb.com/thread-58658-1-1.html)

sjtkxy 发表于 2023-6-9 04:55

longge188 发表于 2023-8-26 09:34

谢谢分享
页: [1]
查看完整版本: 【时钟与多线程】