你能锁定一般字典吗?
-
03-07-2019 - |
题
或者你应该总是创建一些其他的锁对象吗?
解决方案
是的,将其转换为IDictionary并锁定 .SyncRoot
:
Generic.Dictionary<int, int> dic = new Generic.Dictionary<int, int>();
lock (((IDictionary)dic).SyncRoot)
{
// code
}
感谢此信息的来源。
当然,正如其他人所建议的那样,线程安全的字典也会很好。
其他提示
您可以锁定您想要的任何对象(值类型除外)。虽然锁定了.SyncRoot对象,但建议。
不隶属于 StackOverflow