¿Se puede bloquear en un diccionario genérico?
-
03-07-2019 - |
Pregunta
¿O siempre debes crear algún otro objeto de bloqueo?
Solución
Sí, envíelo a un IDictionary y bloquee .SyncRoot
:
Generic.Dictionary<int, int> dic = new Generic.Dictionary<int, int>();
lock (((IDictionary)dic).SyncRoot)
{
// code
}
Gracias a este source por la información.
Por supuesto, un diccionario seguro para subprocesos también sería bueno, como han sugerido otros.
Otros consejos
Puedes bloquear cualquier objeto que desees (excepto los tipos de valor). Se recomienda para bloquear el objeto .SyncRoot.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow