У меня есть DataGridView
с его источником, установленным на BindingSource
, чей источник установлен на BindingList
, который содержит объекты, которые реализуют INotifyPropertyChanged
.Проблема в том, что логика обновления элементов в моем BindingList
работает в отдельном потоке.Все абсолютно хорошо, но я не уверен, почему это работает вообще.Есть ли какая-либо логика в любом из них для обработки многопоточного доступа?Каков правильный подход в этом случае?
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()
метод.