在使用這個函式時,最后一句話comobox.ComboBox1.SelectedIndex = curIdx;運行完之后,在任務管理器中看行程的記憶體增加了,這個GetControlFromDic函式是從一個字典里查出傳入引數對應的控制元件,然后回傳。有大神解答一下嘛????為什么最后一個賦值陳述句會導致記憶體增長?

private void ResetNumSlGrp(int total,int curIdx)
{
object tt = GetControlFromDic("num_sl_grp");
if (tt!=null)
{
BtnComobox comobox = tt as BtnComobox;
comobox.ComboBox1.Items.Clear();
for (int i = 1; i < total + 1; i++)
{
comobox.ComboBox1.Items.Add(i.ToString());
}
comobox.ComboBox1.SelectedIndex = curIdx;
}
}
uj5u.com熱心網友回復:
詳細的細節也可以問啊,大佬在哪里!
uj5u.com熱心網友回復:
你這個ComboBox1的專案回圈添加了專案,就需要記憶體在保存。你說到最后一句才增加,是延遲了吧,comobox.ComboBox1.Items.Add(i.ToString()); 這句就應增加了的。uj5u.com熱心網友回復:
emmm我沒說清楚,問題就是這個函式運行完了之后,記憶體一直在增加,這個函式如果頻繁呼叫,就會導致系統記憶體溢位然后崩潰。。。uj5u.com熱心網友回復:
你是代碼里有資源沒釋放嗎? object tt = GetControlFromDic("num_sl_grp"); 可能與這個里的代碼有關uj5u.com熱心網友回復:
你可以把 object tt = GetControlFromDic("num_sl_grp"); 這行后面的陳述句先屏蔽了,執行一會看是不是一樣的增加記憶體,是的話就是這句里的代碼問題。后面的代碼看起來沒有問題轉載請註明出處,本文鏈接:https://www.uj5u.com/net/34581.html
標籤:C#
