以下场景的线程机制

时间:2013-05-24 20:00:21

标签: c# multithreading

我是多线程编程的新手。

是否可能出现以下情况?

如果一个线程在对象上写入,则其他线程无法读取或写入。

如果正在写一个人,那么每个人都可以同时阅读该对象吗?

首选C#解释。

2 个答案:

答案 0 :(得分:7)

当然,您正在寻找的是ReaderWriterLockSlim(或旧版.NET上的ReaderWriterLock)。 System.Threading中有一个特定的类。在你写作的时候,你拿出一个写锁,当你在读书时取出一个读锁。然后它展示了你所描述的行为。

答案 1 :(得分:2)

您需要一个ReaderWriterLock对象。它允许您获取读锁定或写锁定,以及将读锁定升级到写锁定的能力,以便您可以先检查然后再写入。 This MSDN article explains it all.