2010-11-11 68 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中,那麼你應該全部設置好。