我有一个可以从不同线程访问的静态队列。
队列实现了一个包装器,它在添加/删除/设置时正确锁定。还有一种方法可以锁定并返回队列的副本,但这会产生一个新的可枚举,这有点浪费,所以我只想在必要时调用它。
我不想不必要地复制队列,但是如果在我枚举时队列被更改,那么枚举它可能会引发异常。
这些在枚举时是否有可能引发异常(当然是由于上述原因):
QueueWrapper.InnerQueue.Any()
(空任何)QueueWrapper.InnerQueue.FirstOrDefault(o => o.Something)
QueueWrapper.InnerQueue.Except(element)
我应该在哪里QueueWrapper.InnerQueue
替换QueueWrapper.GetQueueCopy()
?