MFC 运行后界面的按钮不能点击 假死 ,但程序正常运行

MFC运行后界面的按钮不能点击假死,但程序正常运行。代码里创建了许多线程并发与另一服务器进行数据交互,数据量有点大,请教高手这是怎么回事,该怎么解决,不胜感激!!!... MFC 运行后界面的按钮不能点击 假死 ,但程序正常运行。代码里创建了许多线程并发与另一服务器进行数据交互,数据量有点大,请教高手这是怎么回事,该怎么解决,不胜感激!!! 展开
 我来答
一个冒牌程序员
2013-09-04
知道答主
回答量:20
采纳率:0%
帮助的人:24.6万
展开全部
界面假死,那么你的界面能不能移动?如果也不能移动,说明你主线程(UI线程)一直在被占用,也就是说你主线做了占用大量CPU时间的事情, (可能是你的UI线程也进行了数据交互) 你可以再开一个新线程把主线程(UI线程)做的事情让该新线程去做,UI不要做占用大量CUP时间的事情。
前任学委
2018-11-15
知道答主
回答量:3
采纳率:0%
帮助的人:4.3万
展开全部
起线程后可加这一段。
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就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huang71216
2013-09-02 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:171
采纳率:0%
帮助的人:84.7万
展开全部
有两点要确定:

1、你的界面按钮,是不是一件置灰了
2、你的主线程有没有和工作线程建立通讯机制,比如信号对象等
追问
界面按钮并没有置灰,只是点击没有响应……我开了很多线程用于处理大量数据,与服务器进行数据交互……不清楚什么是主线程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式