MFC主线程只关注Dialog,需要处理从服务器收到的数据

时间:2013-08-13 07:06:01

标签: c++ mfc

我的代码将从服务器接收xml数据,数据相当庞大。 完成从服务器接收xml数据后,我的代码想要继续解析xml数据,但是,我不知道为什么线程集中在对话框上以从系统接收消息或绘制其他内容...没有办法回到解析代码。 但是,如果我关闭对话框,它会自动返回解析代码吗?

有什么问题?请帮帮我......

2 个答案:

答案 0 :(得分:0)

从互联网上获取数据时,你的onpaint对话消息在消息循环中处于待定状态。当你说它的大数据时,它会挂起你的应用程序。所有其他消息都放在消息队列中。一旦你的应用程序从挂起返回条件中存在于队列中的所有消息都开始执行。最终对话框的WM_PAINT消息也处于挂起状态,该消息在hange条件完成之后和读取xmle文件之前执行。

答案 1 :(得分:0)

如果您需要在此期间响应对话,则需要在单独的线程中执行“接收和解析xml数据”。

使用CreateThread()启动线程,您可以使用GetExitCodeThread()检查线程是否已终止(并获取线程的退出代码)。

或者,您可以使用MFC CWinThread class执行相同的操作。