Threadsicheres Dictionary unter .NET

Das Dictionary unter .NET ist eine schöne Datenstruktur mit der man effizient Schlüssel- und Wertepaare verwalten kann:

Dictionary<uint, byte[]> idToValues=new Dictionary<uint, byte[]>();
idToValues.Add(1, data);

Problematisch wird das ganze, sobald in mehreren Threads gearbeitet wird, welche alle auf das gleiche Dictionary zugreifen. Hier müssen die Zugriffe auf das Wörterbuch kontrolliert und entsprechend gesperrt werden. Einfacher wird es mit der 4er .NET Framework. Dort gibt es ein ConcurrentDictionary welches von Haus aus threadsicher ist und dem Entwickler eine Menge Arbeit erspart.

ConcurrentDictionary<uint, byte[]> idToValues=new ConcurrentDictionary<uint, byte[]>();
idToValues.TryAdd(1, data);

Das “ConcurrentDictionary” kann dabei im Großen und Ganzen wie ein normales Dictionary genutzt werden, so das die Umstellung nicht allzu schwer fallen sollte.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.