模态对话框显示慢 回1楼,是子线程在进行文件拷贝动作,主线程调用CDlgPwdEnter dlg;dlg.DoModal();来显示对话框,是同步执行的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的代码里,有如下2行代码:CDlgPwdEnter dlg;dlg.DoModal();在一般情况下,我的执行完第一句后,对话框都会立即显示。你确定你说的是”我的执行完第一句后,对话框都会立即显示“,而不是执行了dlg.DoModal()后才显示的?看看你拷贝文件时的CPU占用率 回3楼,我说错了,一般是执行完DoModal后会立即显示,但是当有其它线程在拷贝文件时,执行完DoModal后,对话框显示就会延迟不少。此时CPU和内存占用率都很低。我调试进去,在系统的RunModalLoop函数里面,花费了大量时间。 重载RunModalLoop函数,在里面打印日志,显示从函数进入到ShowWindow,中间的时间间隔多达30秒。中间有好多其他的消息,大部份消息是定时器消息和message号为 0x0d 的消息,0x0d我不知道是什么消息。 #define WM_SETTEXT 0x000C #define WM_GETTEXT 0x000D #define WM_GETTEXTLENGTH 0x000E 有人知道是什么原因么?对话框DoModal后,就一直在RunModalLoop里面循环好久才会运行到ShowWindow(SW_SHOWNORMAL);,导致对话框一直无法显示出来 这就是传说中的CPU调度的问题吧,创建的线程越多,CUP调度就越复杂,且牵扯到线程优先级,有些时候某些线程抢占cpu的几率就比较小 散分了,在RunModalLoop打印日志,显示有个定时器在会调用GetWindowText,把定时器的这段句删除掉就正常了,现在还不知道其它地方对这里是否还有影响。 命名管道发送方怎么向接收方发送通知呢 学VC用MFC编程时必须要搞明白MFC内部的源代码吗? 窗体创建 通过socket,何故在本机上可实现文件的传递,在另一机器上则不行? gettickcount的使用 请大家帮忙看看这段代码,并给予修改 编译时为何出“在查找预编译头指令时遇到意外的文件结尾”错? ADO问题,急!!!!!!!!!!!!!!!!! 请教两个问题! Qt界面集成到mfc 如何对某一元素添加子元素 求大神给详细解释模型变换矩阵和glulookat()之间调用的先后顺序
CDlgPwdEnter dlg;
dlg.DoModal();
在一般情况下,我的执行完第一句后,对话框都会立即显示。你确定你说的是”我的执行完第一句后,对话框都会立即显示“,而不是执行了dlg.DoModal()后才显示的?看看你拷贝文件时的CPU占用率
#define WM_GETTEXT 0x000D
#define WM_GETTEXTLENGTH 0x000E