我有一個顯示圖表和進度條的窗體。一些複雜的計算由BackgroundWorker
組件進行,以便表單保持響應。將結果附加到列表中,然後調用ReportProgress
方法,以便ProgressChanged
事件處理程序可以更新進度條(它的作用)。使用BackgroundWorker ProgressChanged事件更新圖表?
但是,我正在努力更新成功更新進度欄的相同ProgressChaned
事件處理程序中的圖表。我認爲這是可能的?我希望在每次迭代BackgroundWorker
後更新圖表。我不能直接從BackgroundWorker
更新圖表,因爲它在另一個線程上工作。
在正試圖更新圖表的ProgressChanged
事件處理程序的代碼如下:
Me.ResultsChart.DataSource = myResultsList
With Me.ResultsChart.Series("Results")
.XValueMember = "Iteration"
.YValueMembers = "ObjectiveFunction"
End With
的myResultsList
名單是相當簡單的。它被定義爲Private myResultsList As List(Of Results) = New List(Of Results)
。 Results
類只包含兩個屬性:Iteration
和ObjectiveFunction
。
目前,它不會給出任何錯誤,但圖表不會更新,直到BackgroundWorker
任務完成。當我將數據分配給圖表或者完全不同的東西時,我應該做一些不同的事情嗎?
它以什麼方式不起作用?它會得到一個錯誤,還是該圖表沒有更新? –
每次迭代後圖表都不會更新,但一旦backrground工人完成,圖表就會全部顯示。後臺工作人員可能會迭代幾分鐘,所以我想在每次迭代後更新圖表。 – sarkyscouser
如果您在ProgressChanged事件處理程序中放置斷點,調試器是否顯示包含任何數據的'myResultsList'?什麼類型的對象是'myResultsList'? –