我有一个有趣的情况,语言环境设置与我的C#应用程序混淆,因为我没有意识到像Double.Parse这样的方法不会将“1000”转换为1000,但由于编号格式不同,请做一些意想不到的事情。更改应用程序的语言环境而不更改Windows语言环境
我的问题的一个解决方案是使用类似double d = double.parse("1000", new CultureInfo("en-US"));
的东西。目前,我没有通过CultureInfo。然而,我不知道是否可能在启动时影响的区域设置,而仅仅是我的应用程序。
我发现了一个article on MSDN,说我可以用下面的代码实现这一点:
using System.Threading;
using System.Globalization;
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
不过,这并不表示工作线程是否从主线程产生也将继承父的文化。
我想这是不是这样,在.NET 4.5有显然是一个新CultureInfo.DefaultThreadCurrentCulture
属性指定用于在应用程序域的所有线程的文化,但没有像这样在.NET 4.0中什么。
任何人都可以推荐一个很好的解决方案,这个地区的问题?
是的,我已经证实,并实施修复,谢谢! – Dave
如果它解决了您的问题,请将其标记为答案。 –