0

次のコードを検討してください。

int lastItemIndex = m_listbox.ItemsSource.Count - 1;
var groupItem = m_listbox.ItemsSource[lastItemIndex] as GroupedObservableCollection<ScheduleItem, DateTime>;

WPF/Silverlight/WP のようなマルチスレッド環境で、lastItemIndex が実際に 2 行目の最後のアイテム インデックスであることを確認する方法はありますか?

4

1 に答える 1

1

WPF は、他のほとんどの UI フレームワークと同様に、既定でシングル スレッドです。マルチスレッドは、明示的に実行した場合にのみ発生します。

一般に、他のスレッドから UI コントロールによってアクセス可能なコレクションを変更するべきではありません。Invoke を使用して変更要求をメイン スレッドにマーシャリングし、そこで実行できます。そうすれば、コレクションは常にメインスレッドからのみアクセスおよび変更され、同時実行の問題は発生しません。

于 2013-04-24T08:20:30.120 に答える