设置计时器代码
HANDLE hTimer;
LARGE_INTEGER li;
const int nOneSecond = 10000000;
li.QuadPart = -1 * nOneSecond;
li.QuadPart *= 60;
hTimer = CreateWaitableTimer(NULL, FALSE, NULL);
SetWaitableTimer(hTimer, &li, 0, NULL, NULL, FALSE); HANDLE Handles[2];
Handles[0] = g_hExitThreadEvt;
Handles[1] = hTimer; while (1)
{
DWORD dwResult = \
WaitForMultipleObjects(2, Handles, FALSE, INFINITE);
switch (dwResult)
{
case WAIT_OBJECT_0:
// Ok! I can exit now...
CloseHandle(hTimer);
SetEvent(g_hHistoryThreadExit);
return 0;
case WAIT_OBJECT_0+1:
//处理函数
break;
default:
break;
}
SetWaitableTimer(hTimer, &li, 0, NULL, NULL, FALSE);
}定时器为一分钟触发一次,现在像让定时器在整分的时候触发。现在在处理函数里的时间不是整分。
HANDLE hTimer;
LARGE_INTEGER li;
const int nOneSecond = 10000000;
li.QuadPart = -1 * nOneSecond;
li.QuadPart *= 60;
hTimer = CreateWaitableTimer(NULL, FALSE, NULL);
SetWaitableTimer(hTimer, &li, 0, NULL, NULL, FALSE); HANDLE Handles[2];
Handles[0] = g_hExitThreadEvt;
Handles[1] = hTimer; while (1)
{
DWORD dwResult = \
WaitForMultipleObjects(2, Handles, FALSE, INFINITE);
switch (dwResult)
{
case WAIT_OBJECT_0:
// Ok! I can exit now...
CloseHandle(hTimer);
SetEvent(g_hHistoryThreadExit);
return 0;
case WAIT_OBJECT_0+1:
//处理函数
break;
default:
break;
}
SetWaitableTimer(hTimer, &li, 0, NULL, NULL, FALSE);
}定时器为一分钟触发一次,现在像让定时器在整分的时候触发。现在在处理函数里的时间不是整分。
解决方案 »
- 我再问,我这样读取内存的方法有错吗?为什么失败?
- 麻烦大家帮我看一下问题处在什么地方(关于串口通信)--附源码
- 求教一个关于avi图片获取的一个问题
- 编译出错,"fatal error C1189: #error :",请高手解决?!
- 求助:在以ADO连接的情况下如何将BOOL型或字符型数据如何存放在SQL SERVER 的BINARY字段中?
- 如何实现自己开发的应用程序在WINDOWS启动时自己动运行???
- 请问怎样能让自己的程序始终显示,就是说单击显示桌面也不最小化?
- 搞不清了——动态连接库或是资源ID
- 如何判断进程异常,各位NR.
- 新手问个问题
- 位图的长,宽等信息怎么获取?
- VC “debug assertion failed”问题, 请各位大神指点!
HANDLE hTimer;
LARGE_INTEGER li;
GetLocalTime(&sysTime);
sysTime.wSecond = 0;
sysTime.wMilliseconds = 0;
FILETIME fileTime;
SystemTimeToFileTime(&sysTime,&fileTime);
li.HighPart = fileTime.dwHighDateTime;
li.LowPart = fileTime.dwLowDateTime;