我是多线程编程的新手。
是否可能出现以下情况?
如果一个线程在对象上写入,则其他线程无法读取或写入。
如果正在写一个人,那么每个人都可以同时阅读该对象吗?
首选C#解释。
答案 0 :(得分:7)
当然,您正在寻找的是ReaderWriterLockSlim
(或旧版.NET上的ReaderWriterLock
)。 System.Threading
中有一个特定的类。在你写作的时候,你拿出一个写锁,当你在读书时取出一个读锁。然后它展示了你所描述的行为。
答案 1 :(得分:2)
您需要一个ReaderWriterLock
对象。它允许您获取读锁定或写锁定,以及将读锁定升级到写锁定的能力,以便您可以先检查然后再写入。 This MSDN article explains it all.