为什么要使用 ReaderWriterLockSlim.EnterReadLock?

Afs*_*var 2 c# multithreading

基于 Microsoft 文档EnterReadLock用于锁定读取模式。它还说多个线程可以读取但一次只能一个线程写入。

为什么我们要EnterReadLock在多个线程可以访问相同数据时使用?如果我们不锁定阅读而是锁定写作会发生什么?

Evk*_*Evk 5

读锁阻止获取写锁(EnterWriteLock将阻塞直到其他人不再获取读或写锁),但允许获取其他读锁。如果不使用EnterReadLockon 读取 - 效果是其他线程可以在其他线程读取它的同时获取写锁和写入数据,从本质上打败了ReaderWriterLock完全的使用。