Tengo una aplicación escrita en C# que no tiene GUI o UI, pero en su lugar escribe archivos que son analizados por otra aplicación (en XML y otros).¿Es posible establecer CultureInfo para una aplicación .NET o solo un hilo?
Tengo un cliente cuyo CultureInfo tiene el separador NumberDecimalSeparador en una coma, lo que provoca errores de análisis con números de coma flotante (PI terminaría como 3,1415).
Me gustaría una forma de establecer CultureInfo globalmente dentro de la aplicación, para todos los hilos. He intentado:
- El (aparentemente) el enfoque habitual de establecer CurrentThread.CurrentCulture como la primera línea en Principal() pero parece que se restablezca.
- Una variación/expansión en http://www.codeproject.com/KB/cs/Change_App_Culture.aspx
- Haga lo mismo (# 1) en los subprocesos creados explícitamente en la aplicación.
Y cambiar para usar el formato explícito no es una opción (150K + líneas, la mayoría escritas por ex empleados).
[Editar] La aplicación se une a una toma de corriente y gestiona las peticiones de los clientes dedicados. Según el tipo de solicitud, genera diferentes clases de controlador.
En este momento, cuando por primera vez yo debería haber aclarado en el # 1 que (I aunque) que había hecho esto en todos los controladores que fueron generados de forma explícita, también.
Resulta que me perdí el subproceso/controlador que causaba el problema. Entonces, la aplicación funciona correctamente ahora, pero la pregunta sigue siendo si la cultura se puede configurar en todos los hilos.
Si pudiera iterar sobre todos los hilos, también resolvería el problema. Por lo tanto:
¿Cómo puedo conseguir todos los objetos de rosca (no ProcessThread) en el proceso actual?
Ayuda sólo si usted está en control de la creación del hilo. A veces tienes que tratar con hilos creados por .NET. Uno nunca debería olvidar la línea sagrada ** 'System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo (" EN-US ");' ** – Bitterblue