在我的代码中,我想检查一个任务(在另一个线程中)当前是否正在运行。
我正在考虑使用Dictionary<String, bool>
,并检查布尔值。但是,由于我不知道启动时的所有可能任务,我将不得不在第一次启动任务时动态填充此词典,并像这样查询:
Boolean status;
if (_tasks.TryGetValue(lockName, out status))
{
return status;
}
return false;
因为,仅仅存在这个条目,仅仅存在条目可以提供信息,我正在考虑使用Hashset<String>
并添加/删除值而不是设置标志。
return _tasks.Contains(name)
我想知道这两种方法中的哪一种会产生最好的结果。我期望写操作的数量与读取的数量大致相同。
答案 0 :(得分:1)
没有任何显着差异。
两者都使用哈希查找来检查密钥,该密钥接近于O(1)操作。