다른 스레드에서 액세스 할 수있는 정적 대기열이 있습니다.큐를 열거/열거합니까?
대기열에는 add/remove/set에서 제대로 잠그는 래퍼가 구현되어 있습니다. 또한 큐의 복사본을 잠그고 반환하는 메서드가 있지만 이것은 새로운 열거 형을 만듭니다. 이는 낭비이기 때문에 필요한 경우에만 호출하고 싶습니다.
내가 불필요하게 큐를 복사하고 싶지 않아요,하지만 난에에 열거하고있어 동안에 열거하는 큐가 변경되는 경우 예외를 throw 할 수 있습니다.
을 열거하면서 이러한 예외를 throw하는 기회가 (때문에 위의 과정의 이유) :
는QueueWrapper.InnerQueue.Any()
QueueWrapper.InnerQueue.FirstOrDefault(o => o.Something)
QueueWrapper.InnerQueue.Except(element)
(모든 빈)
여기서 QueueWrapper.InnerQueue
을 QueueWrapper.GetQueueCopy()
으로 대체해야합니까?
질문에 대답하는 방법이 확실하지 않지만 참고로 .NET에서 사용할 수있는 동시 대기열이 있습니다. http://msdn.microsoft.com/fr-fr/library/vstudio/dd267265.aspx – C4stor
* C4stor *이 맞습니다. ** 내장 된 구현을 사용할 수 있다면 ** 크게 단순화 할 수 있습니다. – Pragmateek