2010-11-11 75 views
2

我正在处理多线程wpf应用程序。为了执行全球化,我尝试将当前线程的(主线程)文化设置为app.xaml.cs中的不变文化,以便应用程序域中的所有C#对象都可以处理文化不变信息。但是当许多线程开始使用工作线程调用时,问题就出现了,这些线程的文化被默认为我不想要的OS Culture设置。帮助我找到创建工作线程从主线程继承CultureInfo的方法多线程wpf应用程序设置线程cultureinfo

回答

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; 
    } 
} 
0

这样做:

if (Thread.CurrentThread.CurrentCulture.Name != "en-US") 
{ 
    var culture = CultureInfo.CreateSpecificCulture("en-US"); 
    CultureInfo.DefaultThreadCurrentCulture = culture; 
    CultureInfo.DefaultThreadCurrentUICulture = culture; 
} 

正如你可以看到它这个设置默认为文化背景和UI线程。如果你把它放到你的app.xaml中,那么你应该全部设置好。