Table of Contents

ConcurrentMap<TKey, TValue>

Namespace: RisingV.Shared.Collections.Concurrent
A thin alias around ConcurrentDictionary<TKey,TValue> that also implements IMap.

Use it when you need lock‑free concurrent reads/writes but still want to expose the same abstraction (IMap) as other collections in the family.

IMap<Guid, Player> players = new ConcurrentMap<Guid, Player>();

// Multiple threads may add/remove safely
players[player.Id] = player;

Constructors

All the ConcurrentDictionary constructor flavors are exposed:

  • ConcurrentMap()
  • ConcurrentMap(IEnumerable<KeyValuePair<TKey,TValue>> collection)
  • ConcurrentMap(IEqualityComparer<TKey> comparer)
  • ConcurrentMap(int concurrencyLevel, int capacity, …)
  • …and so on

When to Choose

  • High‑throughput multi‑threaded scenarios.
  • Producer/consumer pipelines.
  • Shared caches in ASP.NET or game servers.

For single‑threaded contexts prefer Map; for capped caches prefer SizedDictionaryAsync.