我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: MFC空闲处理的一个小问题 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

湘D男孩



性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 473
威望: 0
浮云: 1105
在线等级:
注册时间: 2006-09-22
最后登陆: 2008-06-29

5come5帮你背单词 [ fraction /'frækən/ n. 微量,碎片,分数 ]


MFC空闲处理的一个小问题

最近写了个很简单的测试程序,原来的目的就是为了验证MFC里的空闲处理,一个SDI框架,在VIew
窗口中打印出OnIdler函数的参数lCount值,当有消息输入时,该值立刻
置为0,(其实就是深入浅出MFC书中的一个例子).但是我发现应用程序运行到一段时间(刚开始只是观察结果符合就直接手动关掉了),应用程序被强行结束掉了....热心的GG给解释哈!
谢谢!
顶端 Posted: 2007-10-30 21:49 | [楼 主]
路客与刀客



性别: 帅哥 状态: 该用户目前不在线
等级: 希望之光
家族: 梦魇图腾
发贴: 1980
威望: 0
浮云: 1186
在线等级:
注册时间: 2007-01-02
最后登陆: 2008-06-29

5come5帮你背单词 [ ingenious /in'd3əi:njəs/ a. 机敏的,有发明才能的,精致的,巧妙的 ]


这是因为你在空闲处理的时候疯狂的用new(CDC * dc=new CClientDC(this);)操作符申请内存(每秒的空闲处理次数接近10万,即使程序看起来很忙空闲处理的次数也不会少。以后编程的时候一定要注意使用new 申请的内存一定要自己释放,否则就会造成严重的内存泄露)而又不释放,当程序消耗的内存超过操作系统给它分配的内存时,操作系统会强行关闭该程序。下面是我该过之后的程序代码。另外请不要在非客户区绘制东西(我已经做了修改)。


[ 此贴被路客与刀客在2007-11-02 12:28重新编辑 ]
附件: 空闲处理--路客与刀客.rar (43 K) 下载次数:1

顶端 Posted: 2007-11-02 11:50 | [1 楼]
路客与刀客



性别: 帅哥 状态: 该用户目前不在线
等级: 希望之光
家族: 梦魇图腾
发贴: 1980
威望: 0
浮云: 1186
在线等级:
注册时间: 2007-01-02
最后登陆: 2008-06-29

5come5帮你背单词 [ groceries // n. 食品(店);杂货(店) ]


还有为了能看清楚数字的变动,我把空闲处理调用视图的IdleTimeHandler函数的次数降低了,使用下面的语句
Quote:

if (lCount%9999==0)
        ((COnIdleHandlerView*)pWnd->GetActiveView())->IdleTimeHandler(lCount);

当空闲计数器的计数值为9999的倍数时,调用一次视图的IdleTimeHandler函数


[ 此贴被路客与刀客在2007-11-02 12:01重新编辑 ]
顶端 Posted: 2007-11-02 11:54 | [2 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.008070(s) query 6, Time now is:11-22 21:11, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号