Pregunta

¿O siempre debes crear algún otro objeto de bloqueo?

¿Fue útil?

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
scroll top