Heim > Backend-Entwicklung > C++ > Wie implementiert man eine Warteschlange fester Größe mit automatischer Entfernung aus der Warteschlange in C#?

Wie implementiert man eine Warteschlange fester Größe mit automatischer Entfernung aus der Warteschlange in C#?

Patricia Arquette
Freigeben: 2025-01-13 08:50:47
Original
839 Leute haben es durchsucht

How to Implement a Fixed-Size Queue with Automatic Dequeuing in C#?

Erstellen einer Warteschlange mit fester Größe in C# mit automatischer Entfernung älterer Elemente

In diesem Artikel geht es um die Erstellung einer Datenstruktur, die einen begrenzten Objektverlauf verwaltet und die ältesten Einträge automatisch verwirft, wenn die maximale Größe erreicht ist. Wir erstellen diese Warteschlange unter Verwendung des System.Collections Namespace.

Lösung:

Die Lösung verwendet eine Wrapper-Klasse FixedSizedQueue<T> um ConcurrentQueue<T>. Die Methode Enqueue in diesem Wrapper überprüft die Größe der Warteschlange. Wenn die Warteschlange voll ist (definiert durch die Eigenschaft Limit), wird das älteste Element über Dequeue entfernt, um das neue Element aufzunehmen.

Hier ist der C#-Code für die FixedSizedQueue<T>-Klasse:

<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>
Nach dem Login kopieren

Die Verwendung von FixedSizedQueue<T> stellt einen Verlauf mit fester Größe sicher, mit automatischer Entfernung älterer Elemente bei Erreichen der Kapazitätsgrenze.

Das obige ist der detaillierte Inhalt vonWie implementiert man eine Warteschlange fester Größe mit automatischer Entfernung aus der Warteschlange in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage