我有一个包含System.Windows.Forms.TrackBar的控件。我将其最大值设置为〜200,000,000。当我这样做时,控制需要800MB的内存。将最大值减少到2,000,000使用更合理的内存量。System.Windows.Forms.TrackBar内存使用具有很大的最大值
//trackBar.Maximum = 210554060; // uses ~800MB of memory
trackBar.Maximum = 1000000; // uses a small amount of memory
这是Windows控件中的错误吗?或者我要求trackbar做一些不合理的事情?
更新: 我创建了一个新窗体项目,只有窗体上有一个轨迹条。我将最大值设置为200,000,000。我设置TickFrequency并进行更改,以便不存在数百万个滴答和更改步骤。
当我这样做时,应用程序使用超过800MB的内存。我正在使用.NET Framework 4.
。
更新 我有点找到的解释这个问题:http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.windowsforms.controls/2006-12/msg00015.html
添加链接测试项目 https://www.dropbox.com/s/nh6jsymw05feoqn/testingTrackbar.zip?m
你是怎么确定它使用大量内存的? – 2013-03-04 19:45:16
@ImmortalBlue:请参阅[本文](http://stackoverflow.com/questions/15206654/excessive-memory-usage-by-comctl32-dll-when-a-checkbox-controls-visible-becomes) As far将其缩小到TrackBar,我将跟踪栏的最大值更改为1000000,并使用资源监视器工具查看提交内存。我想我应该确保问题不是其他的使用最大值的东西。 – GreenRibbon 2013-03-04 19:55:55
那么,我刚刚做了一个noddy复制,并且最大尺寸对我的应用程序没有任何影响。我怀疑它实际上是使用那么多内存的trackbar。您是否将某些内容绑定到了trackbar的最大值? – 2013-03-04 20:02:12