使用 Hashtable.Synchronized包装的HashTable,针对多个写线程,或者多个读线程是线程安全的,但是针对又有度线程,又有写情况,是不安全的。
Hashtable table2 = Hashtable.Synchronized(new Hashtable());//线程安全的。
使用
lock (table2)
也是一样的情况针对多个写线程,或者多个读线程是线程安全的,但是针对又有度线程,又有写情况,是不安全的。要想对既有读线程又有写线程的情况是安全的需要使用SyncRoot属性。
这里是原文
坑爹。