我用C#编写的应用程序没有GUI或UI,而是写入由另一个应用程序(以XML和其他应用程序)解析的文件。是否可以为.NET应用程序或只是一个线程设置CultureInfo?
我有一位客户,其CultureInfo将NumberDecimalSeparator设置为逗号,这会导致浮点数字的分析错误(PI最终会变为3,1415)。
我想要一种方法来在应用程序中为所有线程全局设置CultureInfo。我已经试过:
- 设置CurrentThread.CurrentCulture在的Main()第一线的(显然)习惯性的做法,但它似乎被重置。
- http://www.codeproject.com/KB/cs/Change_App_Culture.aspx
- 的变化/扩展对应用程序中显式创建的线程执行相同的操作(#1)。
而改为使用显式格式不是一种选择(150K +行,大部分由前员工编写)。
[编辑] 该应用程序绑定到套接字并处理来自专用客户端的请求。根据请求类型,它产生不同的处理程序类。
对不起,当我第一次发布时,我应该在#1中澄清,(我虽然)我已经在所有明确产生的处理程序中完成了此操作。
事实证明,我错过了导致问题的线程/处理程序。因此,应用程序现在正常工作,但问题仍然存在,如果文化可以在所有线程上设置。
如果它可以迭代所有线程,它也可以解决问题。所以:
我怎样才能在当前进程得到所有主题对象(不ProcessThread)?
帮助仅当您在创建线程的控制是。有时你必须处理由.NET创建的线程。人们不应该忘记圣行**'System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(“EN-US”); ** – Bitterblue 2014-02-07 12:34:30