C# Winform 窗体最小化时都干了什么?

miqier 2007-03-07 10:45:53
应用程序,窗体最大化时占用50M以上内存资源,最小化后占用1M,恢复后占用10M。
这么大的差别,在窗体最小化时到底做了些什么?
...全文
518 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
nuaaeagel 2007-03-27
  • 打赏
  • 举报
回复
关注
miqier 2007-03-07
  • 打赏
  • 举报
回复
欢迎继续发表意见...
JavaK 2007-03-07
  • 打赏
  • 举报
回复
大部分是GDI占内存吧!
wzq6511 2007-03-07
  • 打赏
  • 举报
回复
接分
兔子-顾问 2007-03-07
  • 打赏
  • 举报
回复
一直都是10M,最小化的时候,会认为你暂时不会使用,至少这个暂时对cpu而言是比较长了。他就把程序内存(猜测是连续页的部分)放到了硬盘上缓存起来,激活窗体或者还原的时候再挪回到物理内存中。
sunrobust 2007-03-07
  • 打赏
  • 举报
回复
最小化实际上是把窗体放到了一个负值区间(如果XOY第一象限是屏幕的话),这样,大部分GDI对象都不必重画,并释放维护重画动作所需要的对象.
lizhizhe2000 2007-03-07
  • 打赏
  • 举报
回复
对话框显示时所有的界面元素都要显示,OS要在内存中记录颜色状态等一系列信息,因此内存消耗较大,当最小化OS只需记录很少的信息,比如颜色不用画出来,内存占用较少
cancerser 2007-03-07
  • 打赏
  • 举报
回复
个人认为,在窗体被激活时,所有控件所能用到的变量会被分配内存(比如textbox,它的text属性就会被分配内存,也就是其string变量被分配内存,以及保证其运转的相关内存),所有控件处于等待状态,这好像是为了保证运行速度的一种机制.当然也包括显示界面所花费的资源等内存,最小化失去焦点后 内存可能就会被回收,只剩余保证其生存的内存
__________________
个人意见,欢迎拍砖.
ms44 2007-03-07
  • 打赏
  • 举报
回复
Onpain事件不会做
少去非常多的绘制操作。
由于是非Active的,所以许多消息也没有监听到。又省了很多。
Red_angelX 2007-03-07
  • 打赏
  • 举报
回复
窗体重绘的速度会减缓,开销也就 下降了
北京的雾霾天 2007-03-07
  • 打赏
  • 举报
回复
可以这样理解,窗体在显示的时候需要系统资源来存放窗体上的控件等的信息.比如窗体越大占的内存越多.
sqfeiyu 2007-03-07
  • 打赏
  • 举报
回复
應該和正常狀態下沒有太大區別﹐省略了圖形開銷。
試了一下確實是你說的那樣﹐不過很可能和C#的內存回收機制有關﹐在運行時﹐C#的內存回收很不盡人意啊﹗
王集鹄 2007-03-07
  • 打赏
  • 举报
回复
窗体最小化的时候会释放一些内存使用量
//估计是和GDI有关的内存

但虚拟内存是不会因此而减小
lixueling501 2007-03-07
  • 打赏
  • 举报
回复
关注...
shinaterry 2007-03-07
  • 打赏
  • 举报
回复
最小化窗体不会再重绘自身与及子控件。当然占用的资源会少很多。。。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧