1

我正在编写一个(希望如此)线程安全的数据结构,它本质上是一个 HashSet 的 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]
}

我希望 TryRemove 存在类似于 ConcurrentDictionary.AddOrUpdate(key, newValue, Func) 的东西,但没有运气。对于普通字典来说,这两个 Remove 方法都很容易编写,但是在并发它们时,我很茫然。有人指出我正确的方向吗?:)

4

0 回答 0