次のコードでは:
public class SomeItem { }
public class SomeItemsBag : ConcurrentBag< SomeItem > { }
public class SomeItemsList : List< SomeItem > { }
public static class Program
{
private static ConcurrentDictionary< string, SomeItemsBag > _SomeItemsBag;
private static ConcurrentDictionary< string, SomeItemsList > _SomeItemsList;
private static void GetItem(string key)
{
var bag = _SomeItemsBag[key];
var list= _SomeItemsList[key];
...
}
}
私の仮定では、bag はスレッドセーフであり、list はそうではありません。これは、マルチスレッド アプリでリストの辞書を処理する正しい方法ですか?
追加するように編集: 1 つのスレッドのみがバッグ/リストに追加され、別のスレッドが削除されますが、多くのスレッドがアクセスできます。