後,我在c#使用winforms。列表框掛起增加幾個條目
我簡化我的應用程序,以便它只是有一個ListBox
和Button
。
這裏是我的按鈕單擊事件:
private void button1_Click(object sender, EventArgs e)
{
for (long i = 0; i < 66000; i++)
{
listBox1.Items.Add(i.ToString());
listBox1.SelectedIndex = listBox1.Items.Count - 1;
}
}
當我運行我的應用程序,並按下按鈕,我看到了ListBox
更新,一段時間後(有異條目3041左右)程序將顯示爲掛起因爲它會在完成後添加剩餘的條目,ListBox
將會適當刷新。
爲什麼掛?它處理太多了嗎?我看着我的CPU使用率和內存似乎沒有使用那麼多,所以我不知道問題是什麼。
爲什麼你甚至在66.000項目列表框? – Svexo
我實際上並不需要那麼多人用它來測試我在一個更大的應用程序中遇到的問題,我選擇66,000,因爲我在另一個問題中看到,當超過65535個項目在列表中時,Vista有問題,無論哪種方式問題發生在它到達那麼多項目之前。 – hrh
是的,你已經不知所措了。 ListBoxes真的不喜歡你這樣做。如果你真的需要添加一個項目到一個ListBox的負載,或者使用['ListBox.Items.AddRange()'](http://msdn.microsoft.com/en-us/library/system.windows.forms .listbox.objectcollection.addrange.aspx)或調用['ListBox.BeginUpdate()'](http://msdn.microsoft.com/zh-cn/library/system.windows.forms.listbox.beginupdate.aspx)之後添加項目和['ListBox.EndUpdate()'](http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.endupdate.aspx)。 –