HashTable并发

Ami*_*Raz 2 .net concurrency multithreading hashtable

我有一个由多个线程访问的HashTable.例如,让我们看看三个线程:

线程A执行Hash.Insert("a",new object());

线程B执行Hash.Insert("b",new object());

线程C执行Hash.Insert("a",new object());

出于某些原因,我不能在整个哈希上使用Lock

我不关心订单或在流程结束时哪个对象将在哈希处.我唯一关心的是不通过从不同线程更新相同的单元来获取数据损坏.

我有什么选择?或者它不是一个问题,HashTable自己处理并保持数据的机智.

sbl*_*lom 5

您可以考虑使用以下内容:

ConcurrentDictionary<string, object> Hash = new ConcurrentDictionary<string, object>();
Run Code Online (Sandbox Code Playgroud)

来自System.Collections.Concurrent命名空间.