In WPF haben wir zwei Threads (mindestens): Rendering und ein UI-Thread. Wenn ich ein Ereignis OnNotifyPropertyChanged auf einige Eigenschaft ändert, wird es auf dem UI-Thread ausgelöst. Diese Informationen müssen an den WPF-Rendering-Thread zum erneuten Rendern versendet werden. Ich nehme an, es ist in einer synchronen Weise ( Dispatcher.Invoke ) getan, aber wie funktioniert es wirklich?
Wenn ich mehrere OnNotifyPropertyChanged-Ereignisse für dieselbe Datenstruktur auslöse, ohne den Zugriff auf die Accessor-Eigenschaft für diese Datenstruktur zu sperren, für die diese Ereignisse ausgelöst wurden, schaffe ich dann eine potenzielle Race Condition? Ich habe die berüchtigte Ausnahme "Sammlung wurde geändert; Aufzählungsvorgang darf nicht ausgeführt werden" von WPF gesehen, also sieht es aus wie WPF diese Ereignisse asynchron verarbeitet. Habe ich die Ausnahme missverstanden? Vielen Dank!