1
我有一個DataGridView
,其源設置爲BindingSource
,其源設置爲BindingList
,包含實現INotifyPropertyChanged
的對象。問題是,更新我的BindingList
中項目的邏輯運行在單獨的線程中。一切都很好,但我不確定爲什麼它可以工作。有沒有任何邏輯來處理跨線程訪問?在這種情況下,正確的方法是什麼?BindingSource,BindingList,DataGridView和跨線程訪問
BindingSource _actionsBindingSource; // it's DGV's source
BindingList<IAction> _actionsList = ...;
...
interface IAction : INotifyPropertyChanged
{
...
}
...
actionsBindingSource.DataSource = _actionsList;
...
public void FireActions()
{
new Thread(() =>
{
foreach (IAction action in _actionsList)
{
action.Execute(); // fires some PropertyChangedEventArgs events from non-UI thread
}
}).Start();
}
所以,我很好奇我的FireActions()
方法。