동시 HashSet
소개:
.NET Framework는 동시 HashSet의 내장 구현을 제공하지 않습니다
사용자 정의 스레드 안전 구현:
한 가지 접근 방식은 사용자 정의 스레드로부터 안전한 HashSet
<code class="language-C#">public class ConcurrentHashSet<T> { private readonly HashSet<T> _hashSet = new HashSet<T>(); private readonly object _syncRoot = new object(); public bool Add(T item) { lock (_syncRoot) { return _hashSet.Add(item); } } public bool Remove(T item) { lock (_syncRoot) { return _hashSet.Remove(item); } } // 其他操作可以类似地实现 }</code>
ConcurrentDictionary
또 다른 접근 방식은 System.Collections.Concurrent 네임스페이스에서 ConcurrentDictionary
<code class="language-C#">private ConcurrentDictionary<T, byte> _concurrentDictionary = new ConcurrentDictionary<T, byte>(); public bool Add(T item) { byte dummyValue = 0; return _concurrentDictionary.TryAdd(item, dummyValue); } public bool Remove(T item) { byte dummyValue; return _concurrentDictionary.TryRemove(item, out dummyValue); } // 其他操作可以类似地实现</code>
참고:
방법을 선택할 때 다음 요소를 고려하세요.
결론:
.NET Framework에서동시 HashSet의 필요성
위 내용은 .NET Framework에서 Concurrent HashSet을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!