MFC主线程只关注对话框,需要处理从服务器接收的数据

MFC Main thread only focus on Dialog, need to deal with the data received from server

本文关键字:服务器 处理 数据 线程 对话框 MFC      更新时间:2023-10-16

我的代码将从服务器接收xml数据,数据相当巨大。在完成从服务器接收xml数据后,我的代码想继续解析xml数据,然而,我不知道为什么线程专注于对话框来接收来自系统的消息来绘制或做其他事情。。。没有办法回到解析代码。但是,如果我关闭对话框,它会自动返回解析代码吗?

问题出在哪里?请帮帮我……

从互联网获取数据时,对话框的onpaint消息在消息循环中挂起。因为正如你所说,它的大数据,所以它挂起了你的应用程序。放置在消息队列中的所有其他消息。一旦您的应用程序从挂起状态返回,queque中出现的所有消息都开始执行。最后,对话框的WM_PAINT消息也是挂起的,它在change条件完成之后和读取xmle文件之前执行。

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

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

或者,您可以使用MFC CWinThread类来做同样的事情。