スレッドが更新しているアイテムの辞書があります。別のスレッドを使用して更新されたアイテムのリストを取得するメソッドが必要です。そのようスレッドによって更新されているコレクションのオブジェクトのリストを取得
:
internal List<string> GetListOfEntities()
{
List<string> listOfEntities = new List<string>();
foreach (string entityName in ModelFacade._totalListOfStkObjects.Keys)
{
listOfEntities.Add(entityName);
}
return listOfEntities;
}
ModelFacade._totalListOfStkObjectsは、スレッドによって更新されているコレクションです。私は例外を取得し続けます: "コレクションが変更された:列挙操作が実行されません。 _totalListOfStkObjectsをローカルコレクションにコピーし、GetListOfEntities()でそれを反復しようとしましたが、同じエラーが発生します..
助けが必要ですか?
WulfgarPro
絶対に2つのスレッドで辞書にアクセスする必要がありますか?そうでなければ、生産者/消費者のパターンのような選択肢があります。 – Jacob
1つのスレッドがコレクションを満たすために外部アプリケーションに照会します。もう1つのスレッドはListBoxをアイテムで更新します。プロデューサ/コンシューマの設定例 – wulfgarpro
@WulfgarProプロデューサー/消費者のパターンのように見えます。 –