Las cadenas en C# son inmutables y seguras para la rosca. Pero, ¿qué sucede cuando tienes una propiedad getter pública? De esta manera:¿Es una propiedad de cadena en sí misma threadsafe?
public String SampleProperty{
get;
private set;
}
Si tenemos dos hilos y la primera está llamando 'get' y el segundo está llamando 'conjunto' en el "mismo" tiempo, ¿qué pasará?
mi humilde opinión, el conjunto debe hecho un bloqueo a ser flujos seguros como esto:
private string sampleField;
private object threadSafer = new object();
public String SampleProperty{
get{ return this.sampleField; }
private set{
lock(threadSafer){
sampleField = value;
}
}
}
El "requisito" es: Todos los hilos que usan (leen) la propiedad deben tener el mismo/el más actualizado valor. Pero solo el objeto mismo modifica el valor. La palabra clave 'volátil' debería garantizar esto, ¿o no? – TomTom