Supongamos que tengo una variable "counter", y hay varios hilos con el acceso y estableciendo el valor de "contador" Mediante el uso Endentado, es decir:¿Interlocked proporciona visibilidad en todos los hilos?
int value = Interlocked.Increment(ref counter);
y
int value = Interlocked.Decrement(ref counter);
¿Puedo asumir que , el cambio realizado por Interlocked será visible en todos los hilos?
Si no, ¿qué debo hacer para que todos los hilos sincronicen la variable?
EDITAR: alguien me sugirió usar volátil. Pero cuando configuro el "contador" como volátil, hay una advertencia del compilador "la referencia al campo volátil no se tratará como volátil".
Cuando leí la ayuda en línea, decía: "Normalmente, un campo volátil no debería pasarse utilizando un parámetro ref o out".
Sí, el incremento/disminución entrelazados (en x86 e IA-64) automáticamente otorga visibilidad a todos los hilos, ya que tiene una barrera de memoria implícita. Volátil no es necesario (aunque no es ilegal). – minjang