Middle+
Cum se implementează un Dictionary fără a folosi ConcurrentDictionary?
sobes.tech AI
Răspuns de la AI
Pentru a implementa un Dictionary sigur pentru fire fără a folosi ConcurrentDictionary, poți utiliza primitive de sincronizare din namespace-ul System.Threading.
Abordări principale:
-
Blocarea întregului dicționar (
lock): Înconjoară toate operațiile de citire și scriere într-un bloclockfolosind același obiect de sincronizare.// Obiect pentru sincronizarea accesului la dicționar private readonly object _lockObject = new object(); private readonly Dictionary<TKey, TValue> _dictionary = new Dictionary<TKey, TValue>(); public void AddOrUpdate(TKey key, TValue value) { lock (_lockObject) { if (_dictionary.ContainsKey(key)) { _dictionary[key] = value; } else { _dictionary.Add(key, value); } } } public bool TryGetValue(TKey key, out TValue value) { lock (_lockObject) ...