MFC 运行后界面的按钮不能点击 假死 ,但程序正常运行
MFC运行后界面的按钮不能点击假死,但程序正常运行。代码里创建了许多线程并发与另一服务器进行数据交互,数据量有点大,请教高手这是怎么回事,该怎么解决,不胜感激!!!...
MFC 运行后界面的按钮不能点击 假死 ,但程序正常运行。代码里创建了许多线程并发与另一服务器进行数据交互,数据量有点大,请教高手这是怎么回事,该怎么解决,不胜感激!!!
展开
展开全部
起线程后可加这一段。
while (1)
{
DWORD dwRet = WaitForSingleObject(hEnum, THREAD_WAIT_TIME);
if (dwRet != WAIT_FAILED && dwRet != WAIT_TIMEOUT)
{
break;
}
MSG msg;
if (::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
}
THREAD_WAIT_TIME是很小一段时间,宏定义为5就行
while (1)
{
DWORD dwRet = WaitForSingleObject(hEnum, THREAD_WAIT_TIME);
if (dwRet != WAIT_FAILED && dwRet != WAIT_TIMEOUT)
{
break;
}
MSG msg;
if (::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
}
THREAD_WAIT_TIME是很小一段时间,宏定义为5就行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有两点要确定:
1、你的界面按钮,是不是一件置灰了
2、你的主线程有没有和工作线程建立通讯机制,比如信号对象等
1、你的界面按钮,是不是一件置灰了
2、你的主线程有没有和工作线程建立通讯机制,比如信号对象等
追问
界面按钮并没有置灰,只是点击没有响应……我开了很多线程用于处理大量数据,与服务器进行数据交互……不清楚什么是主线程
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询