Visual c++ 由于Mfc主线程,应用程序在100%使用率下挂起

Visual c++ 由于Mfc主线程,应用程序在100%使用率下挂起,visual-c++,mfc,win32gui,win32-process,windows-xp-sp3,Visual C++,Mfc,Win32gui,Win32 Process,Windows Xp Sp3,平台:Windows xp 编译器:vs2008 应用程序启动后,当我单击ui时,应用程序将以100%的使用率挂起: 所以我试图找出哪个线程导致这个挂起,所以我冻结了主线程,然后应用程序挂起停止。 在调查之后,CallWindowProc方法上的主线程大部分时间挂起 LRESULT CWnd::DefWindowProc(UINT nMsg, WPARAM wParam, LPARAM lParam) { if (m_pfnSuper != NULL) return ::CallWind

平台:Windows xp 编译器:vs2008

应用程序启动后,当我单击ui时,应用程序将以100%的使用率挂起:

所以我试图找出哪个线程导致这个挂起,所以我冻结了主线程,然后应用程序挂起停止。 在调查之后,CallWindowProc方法上的主线程大部分时间挂起

LRESULT CWnd::DefWindowProc(UINT nMsg, WPARAM wParam, LPARAM lParam)
{
if (m_pfnSuper != NULL)
    return ::CallWindowProc(m_pfnSuper, m_hWnd, nMsg, wParam, lParam);

WNDPROC pfnWndProc;
if ((pfnWndProc = *GetSuperWndProcAddr()) == NULL)
    return ::DefWindowProc(m_hWnd, nMsg, wParam, lParam);
else
    return ::CallWindowProc(pfnWndProc, m_hWnd, nMsg, wParam, lParam);
}
请帮我解决这个问题

主线程调用堆栈

0012f958 78a3e57e mfc90u!AfxCallWndProc+0xf2
0012f97c 78a3c234 mfc90u!AfxWndProc+0x37
0012f9c4 7e418734 mfc90u!AfxWndProcBase+0x56
0012f9f0 7e418816 USER32!InternalCallWinProc+0x28
0012fa58 7e42927b USER32!UserCallWinProcCheckWow+0x150
0012fa94 7e4292e3 USER32!SendMessageWorker+0x4a5
0012fab4 7e424c99 USER32!SendMessageW+0x7f
0012fad8 7e424cef USER32!xxxRemoveDefaultButton+0x46
0012faf0 7e4243da USER32!xxxSaveDlgFocus+0x3e
0012fb1c 7e423d5c USER32!DefDlgProcWorker+0x2f5
0012fb38 7e418734 USER32!DefDlgProcW+0x22
0012fb64 7e418816 USER32!InternalCallWinProc+0x28
0012fbcc 7e42a013 USER32!UserCallWinProcCheckWow+0x150
0012fbfc 7e42a039 USER32!CallWindowProcAorW+0x98
0012fc1c 78a3edcb USER32!CallWindowProcW+0x1b
0012fc3c 78a3f6e3 mfc90u!CWnd::DefWindowProcW+0x44
0012fc58 78a3e2f2 mfc90u!CWnd::WindowProc+0x3b
0012fcc0 78a3e57e mfc90u!AfxCallWndProc+0xa3
0012fce4 78a3c234 mfc90u!AfxWndProc+0x37
0012fd2c 7e418734 mfc90u!AfxWndProcBase+0x56
0012fd58 7e418816 USER32!InternalCallWinProc+0x28
0012fdc0 7e428ea0 USER32!UserCallWinProcCheckWow+0x150
0012fe14 7e428eec USER32!DispatchClientMessage+0xa3
0012fe3c 7c90e453 USER32!__fnDWORD+0x24
0012fe60 7e4191be ntdll!KiUserCallbackDispatcher+0x13
0012fe80 78a7e46b USER32!NtUserGetMessage+0xc
0012fe9c 78a7eb18 mfc90u!AfxInternalPumpMessage+0x1a
0012febc 00411d9a mfc90u!CWinThread::Run+0x5b

请提供一个复制该问题的示例。由于它包含大量activex控件,生产有点复杂。是否有任何工具可以查找主线程问题?请尝试在下运行应用程序。在CWnd::PreCreateWindow方法上添加消息框后,未看到100%的cpu使用率。这是怎么发生的?我不知道。