En mi aplicación multihilo estoy usando algunas variables que pueden ser alteradas por muchas instancias al mismo tiempo. Es extraño, pero funcionó bien sin ningún problema ... pero, por supuesto, necesito hacerlo seguro para subprocesos. Estoy empezando con cerraduras, por lo que agradecería su consejo:¿Bloquear propiedades, buen enfoque?
Cuando el cliente se conecta, se crea la clase Cliente donde cada Cliente tiene su propia variable "A".
A veces, el cliente llama al método así:
Client selectedClient SelectOtherClientClassByID(sentID);
selectedClient.A=5;
No hay problemas hasta ahora con que incluso cuando 5 clases estaban haciendo al mismo tiempo (subprocesos), pero yo estaba pensando ¿qué pasa con la adición de cerraduras para conocer el inmueble ?
igual:
A {
get { return mA; }
set {
// use lock here for settting A to some value
}
}
¿Estaría bien?
Gracias ... por cierto para leer Es porque podría cambiar durante la lectura por otra clase? – Petr
No es una buena idea bloquear esto, ya que es accesible desde fuera del tipo. –
Podría cambiar mientras configuras. El bloqueo actúa como una barrera, impidiendo cualquier otra acción hasta que el propietario del candado suelta el candado. –