Page 1 of 1

Sperre für ConcurrentDictionary beim AddOrUpdate-ing?

Posted: 17 Jan 2025, 08:33
by Anonymous
Ich verwende einen ConcurrentDictioanry, um über viele Threads hinweg auf einige Daten zuzugreifen.

Ich habe diesen Artikel gelesen (nach unten scrollen). ), dass die Methode AddOrUpdate nicht in der Sperre ausgeführt wird, sodass sie die Thread-Sicherheit gefährden könnte.

Mein Code lautet wie folgt:

Code: Select all

//keys and bar are not the concern here
ConcurrentDictioanry foo = new ...;
foreach(var key in keys) {
foo.AddOrUpdate(key, new HashSet { bar }, (key, val) => {
val.Add(bar);
return val;
});
}
Soll ich den AddOrUpdate-Aufruf in eine lock-Anweisung einschließen, um sicherzustellen, dass alles threadsicher ist?