首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在string-key上锁定

在string-key上锁定
EN

Stack Overflow用户
提问于 2012-11-09 20:10:00
回答 2查看 1.9K关注 0票数 4

如何根据特定的string-key执行lock

代码语言:javascript
运行
复制
public void PerformUpdate(string key)
{
    // TODO: Refine this, since they key-string won't 
    // be the same instance between calls

    lock(key)
    {
        PerformUpdateImpl()
    }
}

我试着将锁对象保存在ConcurrentDictionary中,但不知何故这也不成立。

EN

回答 2

Stack Overflow用户

发布于 2012-11-09 20:13:57

虽然这不是并发的(您可以这样做),但是Dictionary<string,object>呢?

这不是可行的吗?

代码语言:javascript
运行
复制
dict.Add("somekey",new object());

lock (dict["somekey"]) {
  ...
}

这将允许线程锁定对象的命名实例,我认为这会做您想做的事情。

票数 9
EN

Stack Overflow用户

发布于 2012-11-09 20:13:53

我做类似事情的一种方法是创建一个Dictionary<string,object>,并使用它从字符串转到我锁定的对象。你可能需要确保这个字典是以threadsafe的方式被访问的(例如,围绕它的锁),如果你需要在不同的实例之间锁定,将它设为静态的,等等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13307831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档