1. 程式人生 > >[C/C++]windows定時器

[C/C++]windows定時器

#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) { // 定時器邏輯程式碼 }