你能锁定一般字典吗?

时间:2009-01-04 01:51:32

标签: c# multithreading generics dictionary locking

或者你应该总是创建一些其他的锁对象吗?

2 个答案:

答案 0 :(得分:14)

是的,将其投放到IDictionary并锁定.SyncRoot

Generic.Dictionary<int, int> dic = new Generic.Dictionary<int, int>();

lock (((IDictionary)dic).SyncRoot)
{
    // code
}

感谢此信息的source

当然,正如其他人所建议的那样,线程安全的字典也会很好。

答案 1 :(得分:1)

您可以锁定您想要的任何对象(值类型除外)。虽然锁定了.SyncRoot对象,但建议