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