我通过 BufferManager.CreateBufferManager
的静态成员创建了一个缓冲区管理器。这个新创建的 BufferManager
被多个线程使用。
我应该将 lock
与 TakeBuffer()
和 ReturnBuffer()
一起使用还是设计为线程安全的?
最佳答案
内部BufferManager.CreateBufferManager
返回 WrappingBufferManager
的实例它不采用任何形式的并发控制,但包装了 SynchronizedPool<T>
的多个实例当 Take()
时采用内部锁定荷兰国际集团一个新的缓冲区。所以从 WrappingBufferManager
的简单性来看,可以安全地假设您的任何锁定都是多余的,并且返回的类实际上是线程安全的。
关于c# - System.ServiceModel.Channels.BufferManager 是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5697154/