Skip to main content
 首页 » 编程设计

c#之在 .NET 中使用 key 的独占锁

2024年06月03日47小虾米

我用过C#中的lock语句独占执行过一段代码。有没有一种方法可以根据 key 执行相同的操作。

例如:

lock(object, key) 
{ 
//code-here 
} 

我有一个方法,其中有一些代码不是线程安全的,但前提是键(字符串)在两个并行执行中恰好相同。有没有办法在 .NET 中以某种方式完成此操作?

如果并行执行中使用的 key 不同并且可以提高性能,那么我们可以并行执行。

请您参考如下方法:

将锁对象放入由键索引的字典中 - Dictionary<string, object>并通过 key 抓取物体以锁定。

如果您需要动态添加新的键/锁对象对,请确保在字典访问周围加锁,否则如果在构建之后您只从字典中读取值,则不需要额外的锁定。