我有一個包含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