或者你应该总是创建一些其他锁定对象?
是的,将它投射到IDictionary并锁定.SyncRoot:
.SyncRoot
Generic.Dictionary dic = new Generic.Dictionary(); lock (((IDictionary)dic).SyncRoot) { // code }
感谢这个信息来源.
当然,正如其他人所建议的那样,线程安全字典也会很好.