可能有些困惑,可能错过了一些简单的东西...
我有
var q = new Queue<object>();
lock (q.SyncRoot)
{
...
}
我明白了
Queue<T> does not provide a defintion for SyncRoot blah blah...
但是,Queue<T>
实现了 ICollection
接口,该接口定义了 SyncRoot
作为一个公共属性。
首先,为什么这个属性被隐藏了呢?其次,如何隐藏你所实现的接口的属性呢?
SyncRoot
来避免对队列的并发写入 - 我建议使用ConcurrentQueue。 - James