gpt4 book ai didi

c# - 是否有一个锁允许多个线程访问,直到一个线程请求独占访问

转载 作者:太空宇宙 更新时间:2023-11-03 21:50:45 25 4
gpt4 key购买 nike

我有一个聊天连接类,一旦与 Connect 方法连接,它就能够使用 SendMessage 方法发送消息。用户完成后,他们将调用 Disconnect

我想要一个允许无限数量的 SendMessage 操作获取锁的锁,但只允许 Connect/Disconnect 操作一旦他们拥有独占锁并且所有其他 SendMessage/Connect/Disconnect 操作都已退出并释放了锁,便开始。

使用这种类型的锁,我可以确保 SendMessage 可以安全访问内部 SocketSocketReaderSocketWriter 类,并且可以确保它们都不会被并行 Disconnect 调用处理掉。

它还有一个好处就是排队所有的Connect/Disconnect,显然不能同时运行。

.NET 框架中是否存在这样的锁?

最佳答案

听起来你想要一个 ReaderWriterLock 或更好的 ReaderWriterLockSlim 在 .Net 4 中。要使用 SendMessage 你会获得一个阅读器锁但是调用 ConnectDisconnect 将需要作者锁。

关于c# - 是否有一个锁允许多个线程访问,直到一个线程请求独占访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14667372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com