在 .NET 中使用密钥的独占锁
Exclusive lock using key in .NET
我用过C#中的lock语句独占执行过一段代码。有没有办法根据密钥做同样的事情。
例如:
lock(object, key)
{
//code-here
}
我有一个方法,其中有一些代码不是线程安全的,但前提是键(字符串)在两个并行执行中恰好相同。有没有办法在 .NET 中以某种方式完成此操作?
如果并行执行中使用的密钥不同并且可以提高性能,那么我们可以并行执行。
将锁定对象放入由key索引的字典中- Dictionary<string, object>
并通过key抓取对象进行锁定。
如果您需要动态添加新的 key/lock 对象对,请确保锁定字典访问,否则如果在构建后您只从字典中读取值,则不需要额外的锁定。
我用过C#中的lock语句独占执行过一段代码。有没有办法根据密钥做同样的事情。
例如:
lock(object, key)
{
//code-here
}
我有一个方法,其中有一些代码不是线程安全的,但前提是键(字符串)在两个并行执行中恰好相同。有没有办法在 .NET 中以某种方式完成此操作?
如果并行执行中使用的密钥不同并且可以提高性能,那么我们可以并行执行。
将锁定对象放入由key索引的字典中- Dictionary<string, object>
并通过key抓取对象进行锁定。
如果您需要动态添加新的 key/lock 对象对,请确保锁定字典访问,否则如果在构建后您只从字典中读取值,则不需要额外的锁定。