定时器的问题main中
_2nDs_Timer timer(1);
int time;
while (running)
{
     time = timer.GetTime();
     timer.WaitTime(16);
     int intime = timer.GetTime() - time;
     printf("time_delta : %d\n", intime);
}
定时器类
2nDs_Timer.h#ifndef _2nDs_TIMER_H_
#define _2nDs_TIMER_H_
#include <windows.h>
class _2nDs_Timer
{
private:
    HANDLE hTimer;
public:
    _2nDs_Timer(BOOL bInit = FALSE);
    ~_2nDs_Timer(void);
    int CreateTimer(void); // 返回负数表示创建失败
    int DeleteTimer(int IId);
    BOOL IsExist(void);
    BOOL WaitTime(int Itime); // 毫秒
    int GetTime(void) {return (int)GetTickCount();}//毫秒
};
#endif2nDs_Timer.cpp
#include "2nDs_Timer.h"#if (defined _WIN32) || (defined _WIN64)
_2nDs_Timer::_2nDs_Timer(BOOL bInit)
{
    if (FALSE == bInit) hTimer = 0;
    else hTimer = CreateWaitableTimer(NULL, FALSE, NULL);
}
_2nDs_Timer::~_2nDs_Timer(void)
{
    if (hTimer) CloseHandle(hTimer);
}
int _2nDs_Timer::CreateTimer(void)
{
    if (hTimer) return -3;
    hTimer = CreateWaitableTimer(NULL, FALSE, NULL);
    if (NULL == hTimer) return -1;
    return (int)hTimer;
}
int _2nDs_Timer::DeleteTimer(int IId)
{
    if (NULL == hTimer) return -1;
    if (FALSE == CloseHandle(hTimer)) return -2;
    hTimer = 0;
    return 1;
}
BOOL _2nDs_Timer::IsExist(void)
{
    return (int)hTimer;
}
BOOL _2nDs_Timer::WaitTime(int Itime)
{
    if (NULL == hTimer) return -1;
    return (BOOL)WaitForSingleObject(hTimer, (DWORD)Itime);
}
#endif不停显示time_delta : %d
数字显示 15,16倒是正常,但是间或的显示 31,32.。这是为啥呢?定时器也不准??