以下方法從UserControl的構造函數啓動。跨線程異常被拋出,但我不知道爲什麼:意外的跨線程異常
public override void Populate()
{
base.Populate();
LoadEditableList(IEditableList);
ThreadStart fix = null;
fix = delegate()
{
if (InvokeRequired)
{
Invoke(fix);
}
else
{
buttonAdd_Click(null, null);
}
};
var thread = new Thread(fix);
thread.Start();
}
的buttonAdd_Click方法添加一個項目到ListView。奇怪的是,如果向if (InvokeRequired)
行添加斷點,我會避免出現此錯誤。這與我寫過幾十次的模式非常相似,我懷疑我因爲新生兒無睡眠綜合徵而缺少了一些東西。
我認爲你是對的。我通過將填充方法綁定到VisibleChanged事件來解決問題。謝謝。 – 2009-10-30 18:06:12