Suponiendo Tengo un objeto A que contieneAlcance de cerradura en C#: ¿el objeto devuelto sigue "bloqueado"?
// ...
private List<double> someList = new List<double>();
// ...
public List<double> SomeList
{
get { lock (this) { return someList; } }
}
// ...
sería hilo de seguridad para realizar la operación en la lista como en el código siguiente. Sabiendo que varias operaciones podrían ejecutarse simultáneamente por diferentes hilos.
A.SomeList.Add(2.0);
o
A.SomeList.RemoveAt(0);
En otras palabras, cuando se libera el bloqueo?
Nunca debe bloquear un objeto expuesto fuera de su clase, como 'this'. – svick
Ok, es suficiente. Suponiendo que bloqueo un objeto no expuesto afuera. –
@svick ¿por qué no? – surfen