Making dictionary access thread-safe?

46,153

In .NET 4 you have the ConcurrentDictionary class.

If you need to use an older version of .NET, and want to write it yourself:

  • wrap a Dictionary as a private field in your class
  • use a separate private object lockObject
  • take a lock on that lockObject around every access to the dictionary
Share:
46,153

Related videos on Youtube

Tom
Author by

Tom

Updated on July 09, 2022

Comments

  • Tom
    Tom almost 2 years

    whats is the easiest way to make C# dictionary access thread safe? Preferably just using lock(object) but any other ideas welcome!

  • Thus Spoke Nomad
    Thus Spoke Nomad almost 9 years
    Just wonder, why "use a seperate lock object"?
  • Henk Holterman
    Henk Holterman almost 9 years
    @MonoLightTech - a bit theoretical, but if code inside the Dictionary class itself or external code that needs to 'see' the collection also locks on it, you might have a deadlock. Use separation of concerns: the lockObject is for locking only.