2013-08-19 62 views
-1

我有一個簡單的測試應用程序與2個按鈕和一個DataGridView。c# - TableAdapter.Fill()+ Dataset.Clear()增加內存

按鈕1:TableAdapter1.Fill(DataSet1.TEST); 按鈕2:DataSet1.Clear();

點擊按鈕1將加載數據庫中的數據,內存使用量從〜25mb增加到〜100mb。 單擊按鈕2將刪除數據 - 至少它在DataGridView中不再可見。

但內存使用量保持在〜100MB。

這裏缺少什麼?

+0

實際內存。引用刪除它有沒有問題就在這裏。使用一些內存是好的,這是程序的功能。您對應用程序如何釋放內存的期望是錯誤的。 –

+0

當我做到以下幾點: 點擊按鈕1 點擊按鈕2 點擊按鈕1次 點擊... 等等... 內存將逐步增加。這實際上不是一個程序應該做的。 – Sommes

+0

是的,大多數程序都是這樣做的。它會平穩。直到您遇到OOM異常,這不是問題。 –

回答

0

你是不是缺少什麼,從數據集.Clearing不會僅只是刪除

+0

什麼元素/實例需要「清除」以將其從內存中移除? – Sommes

+0

你不能'刪除'任何東西。你爲什麼認爲這是必要的? –

+0

CLR管理內存。你可以嘗試做DataSet1 = null並且做GC.Collect(),儘管這是不可取的。 –