1

私は (できれば) スレッドセーフなデータ構造を書いています。これは本質的に HashSets の ConcurrentDictionary のラッパーです。

私がやりたいことは、次のようないくつかの方法を持つことです:

private ConcurrentDictionary<K, HashSet<V>> _index = new ConcurrentDictionary<K, HashSet<V>>();

public void Remove(V value)
{
    // Remove all instances of value from _index
}

public void Remove(K key, V value)
{
    // Remove value from _index[key]
}

ConcurrentDictionary.AddOrUpdate(key, newValue, Func) に似たものが TryRemove に存在することを望んでいましたが、うまくいきませんでした。これらの Remove メソッドは両方とも、通常のディクショナリに対して非常に簡単に記述できますが、それらを同時に実行するとなると、途方に暮れます。誰かが私を正しい方向に向けますか?:)

4

0 に答える 0