¿O debería crear siempre algún otro objeto de bloqueo?¿Puedes bloquear un diccionario genérico?
6
A
Respuesta
14
Sí, lo arrojó a un IDictionary y bloqueo en .SyncRoot
:
Generic.Dictionary<int, int> dic = new Generic.Dictionary<int, int>();
lock (((IDictionary)dic).SyncRoot)
{
// code
}
Gracias a esta source por la información.
Por supuesto, un diccionario seguro para hilos también sería bueno, como otros han sugerido.
1
Puede bloquear cualquier objeto que desee (excepto los tipos de valor). Es recomendado embargo para bloquear el objeto .SyncRoot.
Cuestiones relacionadas
- 1. Filtrar valores de un C# Diccionario genérico
- 2. Por qué bloquear cuando leo desde un diccionario
- 3. ¿Cómo convertir diccionario genérico a no genérico sin enumerar?
- 4. Convertir diccionario genérico para diferentes tipos
- 5. ¿Qué es TKey y TValue en un diccionario genérico?
- 6. diccionario genérico - Obtención de un error de conversión
- 7. ¿Por qué es tan grande un diccionario .net genérico
- 8. ¿Por qué no puedes convertir un genérico abierto limitado al tipo restringido?
- 9. ¿Puedes encasillar un objeto .NET en IronPython?
- 10. Bloquear en un objeto
- 11. SVN bloquear un directorio
- 12. Cómo compartir un diccionario entre múltiples procesos en python sin bloquear
- 13. ¿Agregar diccionario a un diccionario?
- 14. ¿Puedes hacer "un borde invisible"?
- 15. Bloquear() en un método estático
- 16. Cómo bloquear un solo esqueleto
- 17. Python: pase un diccionario genérico como argumentos de línea de comando
- 18. Llamar a un método genérico con un método genérico
- 19. ¿Puedes lanzar un LPTSTR a un BSTR?
- 20. Un diccionario de diccionario de IQueryable
- 21. Un singleton genérico
- 22. ¿Existe un Task.WaitAll genérico?
- 23. Almacenar ints en un diccionario
- 24. Agregar un diccionario combinado a un diccionario combinado
- 25. Agregando a un diccionario dentro de un diccionario
- 26. ¿Puedo crear un diccionario de tipos genéricos?
- 27. AS3: compruebe si un diccionario está vacío
- 28. Transformando la representación de cadenas de un diccionario en un diccionario real
- 29. Seguridad de subprocesos de un diccionario <TKey, TValue>
- 30. ¿Puedes pasar un argumento a sigaction?
Esta respuesta se aceptó, pero cualquiera que lea esto también debería echar un vistazo a esto, por ejemplo: http://stackoverflow.com/questions/327654/hashtable-to-dictionary-syncroot. SyncRoot no es la mejor manera de bloquear las colecciones. – AFract
Me doy cuenta de que esta respuesta es antigua. Solo quería decirte que el enlace está muerto ahora. –
Es mejor no usar "SyncRoot", era un problema de diseño por el equipo de .net, use Lock (_lockObject) en su lugar. –