开发者

multi threaded wpf application setting thread cultureinfo

I'm working on a multithreaded wpf application. To perform globalization i tried to set the current thread's(main thread) culture to invariant culturee in app.xaml.cs, So that all C# objects in app domain works on culture invariant info. But the problem arises when many threads comes to usage the worker threads invoked, those thread's culture are defaulted to OS Culture settings which i don't want. Help me in finding out a way where the worker开发者_如何学Python threads created inherits the CultureInfo from main thread


I don't think there is a way to assign the culture to the entire AppDomain. Your best option might be to use a helper class to instantiate the threads.

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


Do this:

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

As you can see it this sets your default culture for both background and UI threads. If you drop this in your app.xaml then you should be all set.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜