2010-03-08 225 views
3

在多线程应用程序中。我有一堆循环访问信息的函数。我也有一堆修改同一个集合的函数。隔离读取和写入多线程

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

回答

3

您考虑过ReaderWriterLockSlim吗?不过你可能想要check that using it is faster than a simple Monitor lock。不要考虑较旧的ReaderWriterLock。这里是杰弗里里希特不得不说的是:

在Microsoft®.NET框架类 库包括在的System.Threading 命名空间,可以让你获得 多读/单写一个ReaderWriterLock 类 语义。尽管存在这样的 类很不错,但有 实现有几个问题,我建议你不要使用 。