书香雅阁论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 602|回复: 0

【时钟与多线程】

[复制链接]

384

主题

407

帖子

158万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1581367
发表于 2023-3-24 14:14:41|字数:664 | 显示全部楼层 |阅读模式
LV10 站长

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


理论,时钟和启动线程()均为多线程操作。但是区别在于,时钟是一个定时器,会每过一个周期就执行一次,但是启动线程()只会加载一次子程序,也就是说我们只需要让时钟执行一次就可以了,写法如下
  
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
时钟1.时钟周期 = 1
子程序名返回值类型公开备 注
_时钟1_周期事件  
时钟1.时钟周期 = 0
调试输出 (123)


i支持库列表   支持库注释   
spec特殊功能支持库


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

难点:
时钟是对某段代码周期性执行,启动线程启动的子程序里面有死循环,死循环的本质也是对某段代码重复运行,2者有何区别?

区别在于,在子程序内部对于时钟而言依旧是并列执行的,也就是时钟周期一到,时钟周期就会被调用一次,但是死循环内部是存在等待关系的,需要等这段代码执行完毕才可以进行下一次循环

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


(点击返回课程目录https://shuxiangyage.net/forum.php?mod=viewthread&tid=1134
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|小黑屋|书香雅阁论坛 ( 湘ICP备17011672号-3 )

GMT+8, 2024-5-5 17:01 , Processed in 0.143596 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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