#include <stdio.h>
#include <windows.h>
VOID CALLBACK VirtualIDCallback(PVOID lpParameter, BOOLEAN TimeOrWaitFired);
int main()
{
HANDLE handle = NULL;
HANDLE hTimer = NULL;
HANDLE hTimerQueue = NULL;
int arg = 0;
handle = CreateEvent(NULL, TRUE, FALSE, NULL);
if (NULL == handle)
{
printf("CreateEvent失败\n");
return 1;
}
hTimerQueue = CreateTimerQueue();
if (NULL == hTimerQueue)
{
printf("CreateTimeQueue失败\n");
return 1;
}
if (!CreateTimerQueueTimer(&hTimer, hTimerQueue, WAITORTIMERCALLBACK(VirtualIDCallback), &arg, 5000, 10000, NULL))
{
printf("CreateTimeQueueTimer失败\n");
return 1;
}
if (WaitForSingleObject(handle, INFINITE) != WAIT_OBJECT_0)
{
printf("WaitForSingObject失败\n");
return 1;
}
CloseHandle(handle);
if (hTimer)
{
if (!DeleteTimerQueueTimer(hTimerQueue, hTimer, INVALID_HANDLE_VALUE))
{
Sleep(1000);
if (!DeleteTimerQueueTimer(hTimerQueue, hTimer, INVALID_HANDLE_VALUE))
return 0;
}
}
return 0;
}
VOID CALLBACK VirtualIDCallback(PVOID lpParameter, BOOLEAN TimeOrWaitFired)
{
// 定时器逻辑代码
}
[C/C++]windows定时器
最新推荐文章于 2025-11-03 11:29:17 发布
本文展示了一个使用Windows API创建事件、定时器队列及定时器的C语言程序实例。通过该示例,读者可以了解到如何利用CreateEvent、CreateTimerQueue、CreateTimerQueueTimer等函数实现基于Windows系统的定时任务。
938

被折叠的 条评论
为什么被折叠?



