Ich habe ein Wörterbuch der Elemente, die ein Thread aktualisiert. Ich möchte eine Methode haben, um die aktualisierte Liste der Elemente mit einem anderen Thread zu erhalten.Die Liste der Objekte aus der Sammlung wird durch den Thread aktualisiert
wie folgt:
internal List<string> GetListOfEntities()
{
List<string> listOfEntities = new List<string>();
foreach (string entityName in ModelFacade._totalListOfStkObjects.Keys)
{
listOfEntities.Add(entityName);
}
return listOfEntities;
}
ModelFacade._totalListOfStkObjects ist die Sammlung von dem Thread aktualisiert. Ich bekomme weiterhin die Ausnahme: "Sammlung wurde geändert; Aufzählungsoperation wird möglicherweise nicht ausgeführt."; Ich habe versucht, _totalListOfStkObjects in eine lokale Sammlung zu kopieren und über das in GetListOfEntities() zu wiederholen .. aber ich bekomme den gleichen Fehler ..?
Irgendwelche Hilfe?
WulfgarPro
Müssen Sie unbedingt mit zwei Threads auf das Wörterbuch zugreifen? Wenn nicht, gibt es Alternativen, wie ein Erzeuger/Verbraucher-Muster. – Jacob
Ein Thread fragt eine externe Anwendung ab, um die Sammlung zu füllen - der andere Thread aktualisiert eine ListBox mit den Elementen. Irgendwelche Beispiele für das Hersteller/Verbraucher-Setup? – wulfgarpro
@WulfgarPro Scheint wie das Hersteller/Verbraucher-Muster ist der Weg zu gehen. –