添加和删​​除HashSet <t>中的值与检查Dictionary中的标志<t,bool =“”> </t,> </t>的性能

时间:2012-02-24 11:11:06

标签: c# performance dictionary hashset

在我的代码中,我想检查一个任务(在另一个线程中)当前是否正在运行。

我正在考虑使用Dictionary<String, bool>,并检查布尔值。但是,由于我不知道启动时的所有可能任务,我将不得不在第一次启动任务时动态填充此词典,并像这样查询:

Boolean status;
if (_tasks.TryGetValue(lockName, out  status))
{
    return status;
}
return false;

因为,仅仅存在这个条目,仅仅存在条目可以提供信息,我正在考虑使用Hashset<String>并添加/删除值而不是设置标志。

return _tasks.Contains(name)

我想知道这两种方法中的哪一种会产生最好的结果。我期望写操作的数量与读取的数量大致相同。

1 个答案:

答案 0 :(得分:1)

没有任何显着差异。

两者都使用哈希查找来检查密钥,该密钥接近于O(1)操作。