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;
});
}