|
分享例程
界面截图: |
|
备注说明: |
定时器队列(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 ) 如果真 (假 = CreateTimerQueueTimer (hTimer, hTimerQueue, &定时器例程, arg, 10000, 0, 0 )) 标准输出 (, “CreateTimerQueueTimer 失败!”)返回 (3 ) 标准输出 (, “10秒内调用定时器例程...”, #换行符 ) 如果真 (WaitForSingleObject (gDoneEvent, #INFINITE ) ≠ #WAIT_OBJECT_0 )标准输出 (, “WaitForSingleObject 失败!”, #换行符 )CloseHandle (gDoneEvent) 如果真 (假 = DeleteTimerQueue (hTimerQueue )) 标准输出 (, “DeleteTimerQueue 失败!”, #换行符 )标准输入 ()返回 (0 )如果 (参数指针 = 0 )标准输出 (, “定时器例程 参数指针 是 NULL”, #换行符 ) 标准输出 (, “调用定时器例程。参数为:”, 到文本 (指针到整数 (参数指针 )), #换行符 )如果 (定时器或等待已触发 )标准输出 (, “等待时间已过。”, #换行符 )标准输出 (, “等待事件已发出信号。”, #换行符 )SetEvent (gDoneEvent)
运行结果
- 10秒内调用定时器例程...
- 调用定时器例程。参数为:123
- 等待时间已过。
复制代码
定时器队列.e
(5.13 KB, 下载次数: 120)
|
评分
-
查看全部评分
|