Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mencapai Operasi HashSet Selamat Benang dalam .NET?
Alternatif HashSet Selamat Benang dalam .NET
Artikel ini meneroka pendekatan selamat benang untuk mengurus HashSet
koleksi dalam .NET, menawarkan alternatif kepada penguncian manual. Contoh anda menggunakan penguncian tersuai di sekitar operasi HashSet
, kaedah yang sah tetapi berpotensi ralat. Mari kita periksa pilihan yang lebih baik.
Rangka kerja .NET
menyediakan kelas ConcurrentDictionary
dalam ruang nama System.Collections.Concurrent
sebagai penyelesaian unggul. ConcurrentDictionary
menawarkan fungsi jadual cincang selamat benang, mengendalikan bacaan dan tulis serentak dengan cekap. Begini cara menggunakannya:
<code class="language-csharp">private ConcurrentDictionary<string, byte[]> _data;</code>
Sebagai alternatif, anda boleh membuat kelas ConcurrentHashSet
tersuai. Pendekatan ini melibatkan mekanisme penguncian dalaman untuk menjamin keselamatan benang. Contoh pelaksanaan disediakan di bawah:
<code class="language-csharp">public class ConcurrentHashSet<T> : IDisposable { private readonly ReaderWriterLockSlim _lock = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion); private readonly HashSet<T> _hashSet = new HashSet<T>(); public bool Add(T item) { ... } //Implementation as in original example public void Clear() { ... } //Implementation as in original example public bool Contains(T item) { ... } //Implementation as in original example public bool Remove(T item) { ... } //Implementation as in original example public int Count { ... } //Implementation as in original example public void Dispose() { ... } //Implementation as in original example protected virtual void Dispose(bool disposing) { ... } //Implementation as in original example ~ConcurrentHashSet() { ... } //Implementation as in original example }</code>
(Nota: ...
menunjukkan kod daripada contoh asal perlu dimasukkan di sini untuk ringkas).
Menggunakan ConcurrentDictionary
atau ConcurrentHashSet
yang dilaksanakan dengan baik meningkatkan kejelasan kod dengan ketara dan mengurangkan risiko ralat penyegerakan berbanding penguncian manual. Penyelesaian terbina dalam ini dioptimumkan untuk prestasi dan keselamatan benang.
Atas ialah kandungan terperinci Bagaimana untuk Mencapai Operasi HashSet Selamat Benang dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!