开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2905|回复: 8
收起左侧

[分享] CreateTimerQueue - 使用定时器队列

[复制链接]
结帖率:100% (3/3)
发表于 2020-9-1 06:06:44 | 显示全部楼层 |阅读模式   广东省汕头市
分享例程
界面截图:
备注说明: 定时器队列(Timer Queue)
下面的示例创建一个 定时器例程,该例程将在10秒延迟后由线程从 定时器队列中 执行。首先,代码使用CreateEvent函数创建一个事件对象,该事件对象在定时器队列线程完成时发出信号。然后,它分别使用CreateTimerQueue和CreateTimerQueueTimer函数创建一个 定时器队列 和一个 定时器队列定时器。该代码使用WaitForSingleObject函数来确定 定时器例程 何时完成。最后,代码调用DeleteTimerQueue进行清理。
  
窗口程序集名保 留  保 留备 注
定时器队列   
变量名类 型数组备 注
gDoneEvent整数型  

子程序名返回值类型公开备 注
_启动子程序整数型 
变量名类 型静态数组备 注
hTimer整数型 
hTimerQueue整数型 
arg整数型 
arg = 123
' // 使用 事件对象 跟踪 定时器例程 执行
gDoneEvent = CreateEvent (0, 真, 假, 0)
如果真 (0 = gDoneEvent)
标准输出 (, “CreateEvent 失败!”)
返回 (1)
' // 创建 定时器队列
hTimerQueue = CreateTimerQueue ()
如果真 (0 = hTimerQueue)
标准输出 (, “CreateTimerQueue 失败!”)
返回 (2)
' // 设置定时器以在10秒内调用 定时器例程
如果真 (CreateTimerQueueTimer (hTimer, hTimerQueue, &定时器例程, arg, 10000, 0, 0))
标准输出 (, “CreateTimerQueueTimer 失败!”)
返回 (3)

' // TODO: 在这里做其他有用的工作
标准输出 (, “10秒内调用定时器例程...”, #换行符 )
' // 等待 定时器队列 线程使用事件对象完成
' // 线程将此时发出事件信号
如果真 (WaitForSingleObject (gDoneEvent, #INFINITE )#WAIT_OBJECT_0 )
标准输出 (, “WaitForSingleObject 失败!”, #换行符 )
CloseHandle (gDoneEvent)
' // 删除 定时器队列 中的所有定时器。
如果真 (DeleteTimerQueue (hTimerQueue))
标准输出 (, “DeleteTimerQueue 失败!”, #换行符 )
标准输入 ()
返回 (0)
子程序名返回值类型公开备 注
定时器例程  
参数名类 型参考可空数组备 注
参数指针使用CreateTimerQueueTimer或RegisterWaitForSingleObject函数的参数传递给函数的线程数据。
定时器或等待已触发逻辑型如果此参数为TRUE,则等待超时。如果此参数为FALSE,则表明已发出等待事件。(对于定时器回调,此参数始终为TRUE。)
如果 (参数指针 = 0)
标准输出 (, “定时器例程 参数指针 是 NULL”, #换行符 )
' //参数指针 指向参数;在这种情况下,这是一个整数型
标准输出 (, “调用定时器例程。参数为:”, 到文本 (指针到整数 (参数指针)), #换行符 )
如果 (定时器或等待已触发)
标准输出 (, “等待时间已过。”, #换行符 )
标准输出 (, “等待事件已发出信号。”, #换行符 )
SetEvent (gDoneEvent)


运行结果
  1. 10秒内调用定时器例程...
  2. 调用定时器例程。参数为:123
  3. 等待时间已过。
复制代码


定时器队列.e (5.13 KB, 下载次数: 100)

评分

参与人数 2好评 +2 精币 +3 收起 理由
易语言资源网 + 1 + 3 开源精神必须支持~
我爱逛精易 + 1 开源精神必须支持~

查看全部评分

签到天数: 4 天

发表于 2024-3-19 12:41:42 | 显示全部楼层   江苏省苏州市
6666666666
回复 支持 反对

使用道具 举报

发表于 2023-11-5 00:37:00 | 显示全部楼层   广西壮族自治区桂林市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 10 天

发表于 2023-5-2 23:20:44 | 显示全部楼层   湖南省衡阳市
回复 支持 反对

使用道具 举报

签到天数: 2 天

发表于 2023-3-16 21:41:49 | 显示全部楼层   浙江省宁波市
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2022-11-5 09:08:13 | 显示全部楼层   广东省东莞市
好东西,谢谢分享!!!
回复 支持 反对

使用道具 举报

发表于 2021-12-12 20:17:48 | 显示全部楼层   江苏省苏州市
感谢,正常需要,学习一下
回复 支持 反对

使用道具 举报

发表于 2021-6-7 01:39:33 | 显示全部楼层   江苏省南京市
感谢,正常需要,学习一下
回复 支持 反对

使用道具 举报

结帖率:60% (3/5)
发表于 2020-12-24 23:15:15 | 显示全部楼层   湖北省宜昌市
https://docs.microsoft.com/en-us/windows/win32/sync/using-timer-queues
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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