오래된 항목을 자동으로 제거하여 C#에서 고정 크기 대기열 생성
이 기사에서는 제한된 개체 기록을 유지하고 최대 크기에 도달하면 가장 오래된 항목을 자동으로 삭제하는 데이터 구조 생성에 대해 설명합니다. System.Collections
네임스페이스를 사용하여 이 대기열을 구축하겠습니다.
해결책:
이 솔루션은 FixedSizedQueue<T>
주위에 래퍼 클래스 ConcurrentQueue<T>
를 사용합니다. 이 래퍼의 Enqueue
메서드는 대기열의 크기를 확인합니다. 대기열이 가득 찬 경우(Limit
속성으로 정의) 새 항목을 수용하기 위해 가장 오래된 항목이 Dequeue
을 통해 제거됩니다.
FixedSizedQueue<T>
클래스에 대한 C# 코드는 다음과 같습니다.
<code class="language-csharp">public class FixedSizedQueue<T> { private readonly ConcurrentQueue<T> queue = new ConcurrentQueue<T>(); private readonly object lockObject = new object(); public int Limit { get; set; } public void Enqueue(T obj) { queue.Enqueue(obj); lock (lockObject) { T overflow; while (queue.Count > Limit && queue.TryDequeue(out overflow)) ; } } }</code>
FixedSizedQueue<T>
을 사용하면 용량 제한에 도달하면 오래된 항목이 자동으로 제거되어 고정 크기 기록이 보장됩니다.
위 내용은 C#에서 자동 대기열 제거를 사용하여 고정 크기 대기열을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!