Ich habe ein C# -Projekt geerbt und bin wirklich darüber gestolpert, wie man ein Problem beheben kann.C# Project ObservableCollection
Grundsätzlich habe ich eine Klasse, die einen neuen Kommunikations-Thread hervorbringt. Dieser Kommunikations-Thread empfängt Daten und fügt diese Daten einfach einer ObservableCollection als benutzerdefinierte Klasse hinzu.
Die Hauptklasse startet auch einen anderen neuen Thread und dies verarbeitet die ObservableCollection, ihre im Grunde eine Last von linq quires und je nach erforderlicher Kombination etc. löst verschiedene Dinge im Code aus. Es ist eine kontinuierliche while-Schleife mit einem kleinen Schlaf nach seiner getan alle Überprüfungen
Nun ist es durchaus möglich, diese Verarbeitung könnte länger dauern als die nächste Nachricht zu kommen daher, warum es nicht in der Nachricht ausgelöst Trigger erfolgt.
Eine der ersten linq ist Collection.where (....). OrderByDescending (....). ToList();
Dies gibt häufig den Fehler "Sammlung wurde geändert; Enumerationsvorgang möglicherweise nicht ausgeführt" Fehler. Was sinnvoll ist, lese ich, während comms thread schreibt.
Was ist die beste Architektur für mich, um dies zu lösen?