c# - 锁定字符串键

标签 c# locking

如何根据特定的字符串键执行锁定

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/

相关文章:

postgresql - Postgres 函数中的锁定

java - 线程锁排序与简单的同步块(synchronized block)

c# - 锁定内部字符串?

c# - 我应该如何将 .doc 文档保存到 SQL Server 数据库

c# - 使用 LINQ 在两个数组中获取不同的和共同的项目

c# - .NET 是否有任何可用的方法来获取两个字符串的差异?

c++ - 在另一个函数中 boost 读/写锁

sql-server - SQL Server 中的只读锁

c# - 文本 block 不会更新

c# - C#的字典序排序算法