Tengo una aplicación multiproceso que analiza un poco de texto y necesita utilizar English Culture Info para analizar los números de este texto. Entonces, no quiero crear EngCulture cada vez que llamo a la función de análisis sintáctico. Actualmente paso el parámetro EngCulture pero no estoy contento con esto. Quiero definir EngCulture como un miembro estático, por lo que será compartido por subprocesos.CultureInfo thread safety
La documentación de msdn dice que "cualquier miembro público estático (compartido en Visual Basic) de este tipo es seguro para subprocesos. No se garantiza que ningún miembro de instancia sea seguro para subprocesos". Solo estoy usando la siguiente función, entonces ¿cómo podría saber si TryParse usa algún miembro de instancia de EngCulture o no?
public static CultureInfo EngCulture = new CultureInfo("en-US", false);
void parser()
{
if (int.TryParse(value, NumberStyles.Number, EngCulture, out num))...
}
Sí, la promesa de solo lectura lo hace seguro para subprocesos. –
¿'CultureInfo.ReadOnly' otorga garantías de seguridad de subprocesos? Porque [solo lectura e hilo seguro son diferentes] (http://blogs.msdn.com/b/ericlippert/archive/2011/05/23/read-only-and-threadsafe-are-different.aspx). –
@ ta.speot.is: gran pregunta. Tenía curiosidad sobre eso yo mismo y [hice una pregunta al respecto] (http://stackoverflow.com/q/36766649/87698). – Heinzi