如何根据特定的字符串键执行锁定
?
public void PerformUpdate(string key)
{
// TODO: Refine this, since they key-string won't
// be the same instance between calls
lock(key)
{
PerformUpdateImpl()
}
}
我曾尝试将锁定对象保存在 ConcurrentDictionary
中,但不知怎的,这也行不通。
最佳答案
虽然这不是并发的(你可以做到),但是Dictionary<string,object>
呢? .
这行不通吗?
dict.Add("somekey",new object());
lock (dict["somekey"]) {
...
}
这将允许一个线程锁定一个对象的命名实例,我认为这会做你想做的事。
关于c# - 锁定字符串键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13307831/