隔离多线程中的读写

时间:2010-03-08 15:30:28

标签: .net vb.net multithreading

在多线程应用程序中。我有一堆函数循环通过集合来读取信息。我还有一堆修改同一个集合的函数。

我正在寻找一种将所有读取和写入隔离在一起的方法。我不希望在读取过程中执行写操作。我正在考虑在集合对象上使用SyncLock,但这将阻止多个读取尝试并行工作。

1 个答案:

答案 0 :(得分:3)

您考虑过ReaderWriterLockSlim了吗?您可能想要check that using it is faster than a simple Monitor lock。不要考虑旧的ReaderWriterLock。以下是Jeffrey Richter对此所说的话:

  

Microsoft®.NETFramework类   库包括ReaderWriterLock   System.Threading中的类   允许您获取的命名空间   多个读取器/单写   语义。虽然这很好   这样的类存在,有   它的几个问题   实施,我建议你这样做   不要用它。