我正在研究一个多线程的wpf应用程序。为了执行全球化,我尝试将当前线程的(主线程)文化设置为app.xaml.cs中的不变文化,以便app域中的所有C#对象都可以处理文化不变信息。但是当许多线程使用工作线程调用时会出现问题,这些线程的文化默认为我不想要的OS Culture设置。帮助我找出创建的工作线程从主线程
继承CultureInfo的方法答案 0 :(得分:2)
我认为没有办法将文化分配给整个AppDomain。您最好的选择可能是使用帮助程序类来实例化线程。
class ThreadHelper
{
public static Thread getThread(ThreadStart start, int maxStackSize)
{
Thread t = new Thread(start,maxStackSize);
t.CurrentCulture = new System.Globalization.CultureInfo(3081);
return t;
}
}
答案 1 :(得分:0)
这样做:
if (Thread.CurrentThread.CurrentCulture.Name != "en-US")
{
var culture = CultureInfo.CreateSpecificCulture("en-US");
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
}
正如您所看到的,这为后台和UI线程设置了默认文化。如果你把它放在你的app.xaml中那么你应该全部设置。