INotifyPropertyChanged: что происходит за сценой?

В WPF у нас есть два потока (как минимум): рендеринг и поток пользовательского интерфейса. Когда я вызываю событие OnNotifyPropertyChanged при изменении некоторых свойств, оно возникает в потоке пользовательского интерфейса. Эта информация должна быть отправлена ​​в поток отрисовки WPF для повторной отрисовки. Я предполагаю, что это делается синхронно (Dispatcher. Invoke) но как это на самом деле работает?

Если я инициирую несколько событий OnNotifyPropertyChanged для одной и той же структуры данных без блокировки доступа к свойству средства доступа для этой структуры данных, для которой эти события были вызваны, создаю ли я потенциальное состояние гонки? Я видел печально известное исключение «Коллекция была изменена; операция перечисления может не выполняться», исходящее из WPF, поэтому похоже, что WPF обрабатывает эти события асинхронно. Я неправильно понимаю исключение? Спасибо!

6
задан Lenik 4 September 2010 в 01:06
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: