IソースINotifyPropertyChanged
を実装するオブジェクトをcotainsそのBindingList
に設定されているBindingSource
に設定され、そのソースとDataGridView
を有します。問題は、私の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()
メソッドに興味があります。