Tengo un código de varios subprocesos. Me gustaría aumentar el rendimiento un poco, así que me pregunto si puedo deshacerme de un bloqueo..NET Enhebrado: es necesario un bloqueo para las asignaciones
Tengo un miembro de campo:
private IList<ServerStatus> status;
Se actualiza en un hilo de este modo:
status = GetUpdatedStatus();
y se usa en otro hilo de esta manera:
var currentStatus = status;
Entonces, la pregunta es, ¿puede lo anterior producir algún problema sin bloqueos alrededor de las dos declaraciones de asignación?
supongo que el único escenario que puedo ver es currentStatus siendo nula, pero entonces, yo era de esperar una asignación a ser algo seguro para subprocesos (ya sea que se ha cambiado la referencia o no)
excelente respuesta, y gracias por los enlaces - He leído un poco sobre volátil que no trabaja al 100% antes, por lo que tienden a permanecer lejos de él y usa barreras de memoria o bloqueo en su lugar. – Steffen
Tuve que trabajar con hilos, sincronizaciones, etc. el mes pasado, así que leí casi todo lo que había en Internet sobre el argumento. Enhebrar puede dar pesadillas si desea sincronizar estrechamente los hilos. – xanatos