messagebox-mfc 进程问题 MessageBox函数

问题描述

mfc 进程问题 MessageBox函数

我写了一个mfc程序,开启一个线程获取数据,主线程对获取的数据进行处理显示。当在主线程中加上MessageBox函数时程序运行结果正常,不加运行结果就有问题。不知这是为什么会有这个现象。但是这个MessageBox函数仅是我调试时用的,没有任何实际意义

解决方案

MessageBox会阻塞当前消息处理过程,要用日志的方式调试。

解决方案二:

有没有 MessageBox 表现不同,说明是时序的问题。
请代码,仅从你的描述无法分析问题所在。

解决方案三:

MessageBox会阻塞当前线程,这样你的主线程就一直等待,从而子线程可以完成各项工作,而没有的话,主线程会继续运行,导致你线程同步出现问题
你需要解决你的线程同步的问题

解决方案四:

看看是不是程序中获取数据的代码是异步的。直接执行因为没有延迟,主程序还没来得及获取数据,就出错了。

解决方案五:

主线程需要等待子线程完成,在来处理数据,否则没有获取到数据自然就有问题了

解决方案六:

工作线程得到数据以后发送消息给主线程,主线程接收处理消息,得到数据并显示。

时间: 2024-11-03 07:39:37

messagebox-mfc 进程问题 MessageBox函数的相关文章

关联-mfc 如何捕获UpdateData函数的异常

问题描述 mfc 如何捕获UpdateData函数的异常 UpdateData(true)后如果编辑框关联的变量与用户输入的变量类型不符,例如要求输入数字用户输入的是字母,调用UpdateData(true)可以弹出提示,说明用户输入有误,那么我怎么能从UpdateData(true)函数中获取用户的错误类型呢? 解决方案 重写ddv函数http://www.cnblogs.com/mavaL/articles/1860413.htmlhttp://blog.csdn.net/laogaoav/

宿主进程-如何利用CreateRemoteThread函数直接调用(CALL)远程进程内的函数

问题描述 如何利用CreateRemoteThread函数直接调用(CALL)远程进程内的函数 通过OD找到宿主进程内函数体地址,利用CreateRemoteThread直接调用导致宿主进程崩溃.请问是什么原因 解决方案 注入的地址有问题,是否可以正确修改,进程是否有做保护了.

c++-MFC怎么在普通的函数中操作窗口类的成员变量

问题描述 MFC怎么在普通的函数中操作窗口类的成员变量 例如我想在函数f中操作CtestDlg类的变量e.该怎么做? 解决方案 定义一个全局变量 CtestDlg dlg 创建对话框给它赋值 e定义成public的 用dlg.e 得到变量. 解决方案二: 类的普通成员函数的指针类普通成员函数与函数的区别类成员函数与普通函数的区别 解决方案三: 给函数传入形参,用引用&实现

API之进程和线程函数

CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作 CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用 ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接 CreateEvent 创建一个事件对象 CreateMailslot 创建一个邮路.返回的句柄由邮路服务器使用(收件人) CreateMutex 创建一个互斥体(MUTEX) CreateNamedPipe 创建一个命名管道.返回的句柄由管道的服

杀死指定进程名称的小VBS_vbs

以下是一小段杀死指定进程名字的小vbs,希望对大家有帮助. Function KillProc(strProcName) On Error Resume Next Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") Set arrProcesses = objWMIService.ExecQuery( "select * from win32_pro

mfc-菜鸟虚心请教,关于MFC的,我应该补充什么那些函数代码呢?

问题描述 菜鸟虚心请教,关于MFC的,我应该补充什么那些函数代码呢? 50C void CSwitchDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default if(nIDEvent==1){ m_listBoxMac.ResetContent(); for(int m=0;m<4;m++) { CString strAdd1; if(Mac[m].dk!=0&&

MessageBox、::MessageBox 、AfxMessageBox三者的区别 .

MessageBox.::MessageBox .AfxMessageBox三者的区别 以前知道这几个函数有差别,但也没有去细究,最近隔了很久没写VC程序了,结果写到使用MESSAGEBOX时出错了,还为之费解,于是上网找了一下资料,清楚了这三个函数的区别,所以写此文章(参考了大量其他人的所写的资料).使自己能长记性,同时也希望对一些不甚了解的人有所帮助.   三者的本质区别如下: Windows API: MessageBox();   CWnd::MessageBox();    MFC:

ExtJs2.0学习系列(1)--Ext.MessageBox

大家都知道,刚开始搞extjs的时候,很是有点困难,所以本人在新手刚入门后准备了这个系列的文章. 个人认为用extjs做后台很不错,布局比较完美! 1.Ext.MessageBox.alert()方法 有四个参数,为简单起见,主要介绍前面三个参数: alert( title , msg , function(){} ) 其中title,msg为必选参数,function为可选参数,在关闭弹出窗口后触发. Ext.MessageBox.alert("title","msg&qu

VC定制个性化的MessageBox解决方法_C 语言

相信学过VC的人都知道MessageBox()函数的用法: int MessageBox( HWND hWnd, // handle to owner window LPCTSTR lpText, // text in message box LPCTSTR lpCaption, // message box title UINT uType // message box style ); 虽然在参数uType中可以指定一些样式,但你在程序中能够对MessageBox的外观所做的定义却不多.原因