我正試圖解決一個經典問題 - 我有一個多線程應用程序,它運行一些 處理器密集型計算,帶有一個GUI界面。我可以安全地綁定到多線程應用程序上的數據嗎?
每次一個線程已經完成了任務,我想 更新桌子上
任務id狀態|狀態
我使用的DataGridView和的BindingList以下列方式:
BindingList<Task> tasks;
dataGridView.DataSource = tasks
public class Task : INotifyPropertyChanged
{
ID{get;}
Status{get;set;}
}
可以後臺線程安全地更新任務的狀態? 和更改將在GUI中以正確的順序顯示?
第二個問題: 什麼時候需要致電PropertyChanged? 我試着用和不用調用運行,似乎沒有理會..
第三題: 我已經看到了這MSDN使用的dataGridView BindingSource的 爲DataGridView.DataSource和的BindingList 之間的調停這是真的必要?
現在我更好地理解問題2的答案了: 我每次滾動視圖時都會看到所有正在運行的任務的狀態 無效並且狀態已更改。當我沒有滾動,沒有任何變化 謝謝! – Paul 2010-05-20 14:31:42