2012-09-04 10 views

Odpowiedz

31

Jeśli mam ConcurrentDictionary, czy muszę go zablokować, gdy zapętli się za pomocą foreach?

No. Od docs dla ConcurrentDictionary.GetEnumerator:

moduł wyliczający wrócił ze słownika jest bezpieczny w użyciu równocześnie z odczytuje i zapisuje do słownika, ale nie reprezentuje moment in time migawka ze słownika. Zawartość odsłonięta przez moduł wyliczający może zawierać modyfikacje wprowadzone do słownika po wywołaniu funkcji GetEnumerator.

Dopóki nie masz nic przeciwko temu, nie potrzebujesz żadnego rodzaju blokady.

+0

Awesome! Dzięki! – Schultz9999