我的代码将从服务器接收 xml 数据,数据非常庞大。从服务器接收完 xml 数据后,我的代码想继续解析 xml 数据,但是,我不知道为什么线程专注于对话框以接收来自系统的消息以进行绘制或做其他事情......没办法回到解析代码。但是,如果我关闭对话框,它会自动返回解析代码吗?
问题是什么?请帮我.....
在从 Internet 获取数据时,您的对话框的 onpaint 消息在消息循环中待处理。因为正如您所说的大数据,所以它会挂起您的应用程序。所有其他消息都放在消息队列中。一旦您的应用程序从挂起状态返回所有消息queque 中出现的那些开始执行。最后,对话框的 WM_PAINT 消息也处于挂起状态,该消息在挂起条件完成后和读取 xmle 文件之前执行。
如果您需要对话框在此期间响应,则需要在单独的线程中执行“接收和解析 xml 数据”。
使用CreateThread()启动线程,您可以使用GetExitCodeThread()检查线程是否已终止(并获取线程的退出代码) 。
或者,您可以使用 MFC CWinThread 类来做同样的事情。