在我的课上我有这个属性:
public List<MyObject> mCollection { get; set; }
这个集合在一些不同的线程中使用。
我想做的是仅当所有线程都完成读取 mCollection
时才允许写入此属性。
类似于获取和释放 token ,并且仅在释放所有 token 时才允许写入。框架中有类似的东西吗?
提前致谢
最佳答案
您可以通过多种方式实现这一目标。为简单起见,让您的读者通过彼此同步来合作。
- 让读者使用
ReaderWriterLockSlim
获取读锁。让作者采取写锁。 - 让读者发出
CountdownEvent
信号。让作者等一下。 - 让所有的读者和作者都
SignalAndWait
成为一个Barrier
,这样作者只有在每个人都完成后才会继续。
选择符合您的场景的内容。
关于c# - 锁定写入属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25032334/