unsigned int __stdcall func(LPVOID lp)
{
SetTimer(NULL,NULL,500,FightBasicFunction);
AfxMessageBox("11");
while(TRUE)
{
Sleep(1000);
}
return 0;
}DLL中这样的一个线程,我在线程中开了一个定时器,如果把AfxMessageBox("11")去掉后,定时器就不起作用了,这是什么原因.
{
SetTimer(NULL,NULL,500,FightBasicFunction);
AfxMessageBox("11");
while(TRUE)
{
Sleep(1000);
}
return 0;
}DLL中这样的一个线程,我在线程中开了一个定时器,如果把AfxMessageBox("11")去掉后,定时器就不起作用了,这是什么原因.
参考我的博客文章
高精度多媒体时钟应用类
{
UINT oldTickCount, newTickCount;
oldTickCount = GetTickCount();
while(TRUE)
{
while(TRUE)
{
newTickCount = GetTickCount();
if(newTickCount - oldTickCount >= TIMER_LEN)
{
oldTickCount = newTickCount;
break;
}
else
SwitchToThread();
}
// Call your function
}
return 0;
}
void f(Bitree *root)
{
Bitree T;
...
_asm
{
....
mov T.obj,eax
....
}
...
...
f(T.lch);
f(T.rch);
}
我现在想把这个基于窗口的换成无窗口的,我试过开多线程,在线程内部用while(TRUE)+Sleep(500);但是没运行一会儿程序就崩溃了,DLL是MFC下的,AfxBeginThread(),_beginThreadex()等几个创建线程的我都试过,都是这样,如果用settimer就没有错误,请问下是什么原因.