小弟想把定时器设为每十秒一次,启动settimer之后进入while死循环,但是定时器的回调函数好像就执行不了了,请教各位大神是什么个原因?还有就是我用的不是窗口类,看网上不是窗口类也可以用定时器的,不知道是不是这个的事?
::SetTimer(NULL,0,10000,TimerProc);
while(1)
{;}
//
void CALLBACK EM200::TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{
pthis->GetNetData();}
//ORZ
::SetTimer(NULL,0,10000,TimerProc);
while(1)
{;}
//
void CALLBACK EM200::TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{
pthis->GetNetData();}
//ORZ
while(x <10000)
{
Sleep(1000);
}问题的关键应该是系统是怎么协调消息回调函数和其他线程的问题的,这个我还真没认真思考过
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
,如果主线程里有死循环,那么以上这段代码就执行不到,消息回调函数也执行不到,MFC同理
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}