Si tengo un ConcurrentDictionary, ¿debo bloquearlo al pasar por él usando foreach
?Enumeración y bloqueo de ConcurrentDictionary
16
A
Respuesta
31
Si tengo un ConcurrentDictionary, ¿necesito bloquearlo cuando lo bucleo usando foreach?
No. Desde la documentación de ConcurrentDictionary.GetEnumerator
:
El empadronador volvió del diccionario es seguro de usar al mismo tiempo que lee y escribe al diccionario, sin embargo, no representa un momento en el tiempo instantánea del diccionario. Los contenidos expuestos a través del enumerador pueden contener modificaciones realizadas en el diccionario después de llamar a GetEnumerator.
Mientras esté de acuerdo con eso, no necesita ningún tipo de bloqueo.
Cuestiones relacionadas
- 1. C# .NET 4.0 ConcurrentDictionary: ¿TryRemove dentro de un bloqueo?
- 2. .NET - Diccionario vs ConcurrentDictionary
- 3. Biblioteca de clases portátil y .NET ConcurrentDictionary
- 4. Cómo envolver ConcurrentDictionary en BlockingCollection?
- 5. Transmitir de ConcurrentDictionary a IDictionary
- 6. ¿Esta combinación de ConcurrentDictionary y ConcurrentQueue es segura para subprocesos?
- 7. Ordenar una ConcurrentDictionary por valor
- 8. Cuándo ConcurrentDictionary TryRemove devolverá falso
- 9. Método de eliminación concurrentemente concurrente de ConcurrentDictionary
- 10. Diferencia entre bloqueo (taquilla) y bloqueo (variable_which_I_am_uso)
- 11. A .Net4 Gem: The ConcurrentDictionary - Consejos y trucos
- 12. ¿Cómo se accede a ConcurrentDictionary y cómo serializarlo?
- 13. algunas preguntas sobre el uso de ConcurrentDictionary
- 14. Get enumeración de atributos enumeración
- 15. local Almacenamiento y bloqueo
- 16. Bloqueo optimista y org.hibernate.StaleObjectStateException:
- 17. BufferedInputStream y bloqueo
- 18. ERLANG wait() y bloqueo
- 19. oportunidad y pregunta bloqueo
- 20. Modos de bloqueo y no bloqueo en PHP Streams
- 21. WScript.Shell y ejecución de bloqueo?
- 22. Archivo de bloqueo y eliminación
- 23. ConcurrentDictionary: ¿diccionario roto o código incorrecto?
- 24. La propiedad ConcurrentDictionary Keys o Values threadsafe
- 25. Conflictos de nomenclatura de enumeración y propiedad
- 26. Javascript enumeración dentro de una enumeración
- 27. Enlace de enumeraciones y enumeración clases
- 28. Diferencia entre monitor y bloqueo?
- 29. campos de actualización de los valores de una ConcurrentDictionary
- 30. Bloqueo sin bloqueo
¡Impresionante! ¡Gracias! – Schultz9999