C# Hashtable在一个线程中不断写入的情况下,在其他线程执行Hashtable.CopyTo函数拷贝到列表的时候是否安全
Hashtable is thread safe for use by multiple reader threads and a single writing thread."> Hashtable 是线程安全的,可由多个读取器线程和一个写入线程使用。 Hashtable.">多线程使用时,如果只有一个线程执行写入(更新)操作,则它是线程安全的,从而允许进行无锁定的读取(若编写器序列化为 Hashtable)。 Hashtable must be done through the wrapper returned by the Synchronized method, provided that there are no threads reading the Hashtable object.">若要支持多个编写器,如果没有任何线程在读取 Hashtable 对象,则对 Hashtable 的所有操作都必须通过 Synchronized 方法返回的包装完成。
从头到尾对一个集合进行枚举本质上并不是一个线程安全的过程。 即使一个集合已进行同步,其他线程仍可以修改该集合,这将导致枚举数引发异常。 若要在枚举过程中保证线程安全,可以在整个枚举过程中锁定集合,或者捕捉由于其他线程进行的更改而引发的异常。
你这样一直写入,再读取是不安全的,你当然需要做处理