好的,請忽略之前的情況。我再也沒有收到錯誤,所以看起來我的問題是,當我更改圖表數據綁定的值時,需要更新圖表。Control.Refresh()跨線程
//以下無視
大家好。我有一個WinForms應用程序,它有一個面板,panel1
。後臺線程創建,然後被添加到panel1
像這樣
panel1.Controls.AddRange(myArrayOfControls);
這個偉大的工程,我可以看到我的控制得到補充一些其他控件。但是,當新數據進入另一個線程時,我更新控件父對象中的值,然後需要Refresh()
以使顯示更新爲新值。在上下文中調用Refresh()
,數據進入的線程或接收更新數據的對象都會導致InvalidOperation異常,因爲需要調用Invoke。我已經嘗試在我的模型對象中使用Invoke,也嘗試在數據傳入並且看起來無法動搖錯誤的線程中使用Invoke。
如果有人有一些指導,我將不勝感激。
更新:這裏有一些更多的信息。我不認爲這需要它,但我錯了。 :)
我有一個對象類MyObject。這個MyObject類是在一個名爲topologyThread的線程中創建的。數據來自dataThread。 MyObject的實例具有一個Panel實例變量,並且Panel有子控件,包括來自System.Windows.Forms.DataVisualization.Charting命名空間的兩個圖表。因此,隨着數據進入dataThread,我更新MyObject對象中的相應數據值,然後需要刷新圖表以顯示更新的數據。
我知道數據處理得很好。在MyObject類中,我將新值記錄到屬性的setter中的Console,並看到新值顯示。
+1,現在你10代表更接近能夠評論。 :) – 2009-03-05 19:38:35