我写的一个在线程中使用了定时器的程序,预到了两个问题:
DWORD WINAPI ThreadFunc(LPVOID n)
{
MSG msg;
while(1)
{
if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
switch(msg.message)
{
case WM_BEGIN:
printf("SetTimer1\n");
SetTimer(NULL,ID_TIMER,1000,NULL);
break;
case WM_TIMER:
i++;
printf("Timer EXPIRED,%d\n",i);
if(i>3)
KillTimer(NULL,ID_TIMER);
break;
}
}
}
return 0;
}
问题1;想使用KillTimer函数停止WM_TIMER消息,不起作用;
问题2:想用两个定时器,使用了以下代码:
#define ID_TIMER1 1
#define ID_TIMER2 2
WPARAM wParam;
SetTimer(NULL,ID_TIMER1,1000,NULL);
SetTimer(NULL,ID_TIMER2,1500,NULL);
case WM_TIMER:
switch(wParam)
{
case ID_TIMER1:
......
break;
case ID_TIMER2:
......
break;
}
结果都不执行相应的动作。
我的程序只想用API,而且不打算创建窗口,有没有好的办法?
好象不行,那个线程收到的消息都是PostThreadMessage发的。
我的理解啊