在多线程应用程序中。我有一堆函数循环通过集合来读取信息。我还有一堆修改同一个集合的函数。
我正在寻找一种将所有读取和写入隔离在一起的方法。我不希望在读取过程中执行写操作。我正在考虑在集合对象上使用SyncLock,但这将阻止多个读取尝试并行工作。
答案 0 :(得分:3)
您考虑过ReaderWriterLockSlim了吗?您可能想要check that using it is faster than a simple Monitor lock。不要考虑旧的ReaderWriterLock。以下是Jeffrey Richter对此所说的话:
Microsoft®.NETFramework类 库包括ReaderWriterLock System.Threading中的类 允许您获取的命名空间 多个读取器/单写 语义。虽然这很好 这样的类存在,有 它的几个问题 实施,我建议你这样做 不要用它。