为什么我的VC++多线程程序的CPU资源使用率总是100%?高分请教各位大虾了!!!
我的程序是基于对话框的,程序启动后,首先创建8个线程,而后很自然的进入到各自的Run()循环函数中,我的Run函数大致如下:
int CLineThread::Run()
{
MSG msg;
while(TRUE)
{
if (PeekMessage (&msg, 0, WM_NULL, WM_NULL, PM_REMOVE))
{
switch(msg.message)
{
case WM_QUIT:
g_nDeadedThreads ++;
if(g_nDeadedThreads == g_nLine)
SetEvent(g_ThreadEvent);
goto end;
default:
break;
}
}
}
end:return CWinThread::Run();
}
此时可以看到CPU的占有率是100%,如果我只创建1个线程,发现CPU的占有率也是100%,这说明基本与线程数目无关。程序结束时,向各个线程
发送WM_QUIT消息,if(g_nDeadedThreads == g_nLine)用来判断是否所有的线程都收到WM_QUIT消息,g_nLine为所创建的线程数。而且我的程
序经常造成计算机死机,不知这是否与CPU的100%占有率有关?
1。是否我的程序有问题;
2。我该如何写这段程序,尤其是Run函数;
3。无论如何这么简单的程序不可能使CPU有的100%占有率的,我该如何解决CPU有的100%占有率问题。
请教各位了!!!急!!!