tpl threading thread programming programing parallel net c# .net concurrency

c# - threading - Enumeración y bloqueo concurrente



thread programming c# (1)

Si tengo un ConcurrentDictionary, ¿necesito bloquearlo cuando lo hago en bucle a través de foreach ?


Si tengo un ConcurrentDictionary, ¿necesito bloquearlo cuando lo hago en bucle a través de foreach?

No. De los documentos para ConcurrentDictionary.GetEnumerator :

El enumerador devuelto desde el diccionario es seguro de usar al mismo tiempo que lee y escribe en el diccionario, sin embargo, no representa una instantánea del momento. Los contenidos expuestos a través del enumerador pueden contener modificaciones hechas al diccionario después de llamar a GetEnumerator.

Mientras esté de acuerdo con eso, no necesita ningún tipo de bloqueo.