Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengekalkan Sejarah Terbatas Menggunakan Baris Serentak dalam C#?
Menggunakan Sistem.Koleksi.Serentak untuk Sejarah Saiz Tetap
Bayangkan memerlukan struktur data untuk menjejak sejarah terkini, seperti URL penyemak imbas. System.Collections.Concurrent.ConcurrentQueue
ialah pilihan yang baik, tetapi kita perlu mengehadkan saiznya.
Contoh ini menunjukkan kelas FixedSizedQueue<T>
yang membungkus ConcurrentQueue
untuk mengurus sejarah yang terhad:
<code class="language-csharp">public class FixedSizedQueue<T> { private readonly ConcurrentQueue<T> _queue = new ConcurrentQueue<T>(); private readonly object _lock = new object(); public int Limit { get; set; } public void Enqueue(T item) { _queue.Enqueue(item); lock (_lock) { T overflow; while (_queue.Count > Limit && _queue.TryDequeue(out overflow)) { } } } // Add other methods like Dequeue, Count, etc., as needed. }</code>
Properti Limit
mentakrifkan saiz baris gilir maksimum. Enqueue
menambah item; jika melebihi had, ia menggunakan kunci untuk mengalih keluar item lama dengan selamat sehingga saiznya berada dalam had. Ini hanya menyimpan entri terbaharu. Anda akan melanjutkan kelas ini untuk memasukkan kaedah lain seperti Dequeue
, Count
, dsb., seperti yang diperlukan oleh aplikasi anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Sejarah Terbatas Menggunakan Baris Serentak dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!