【发布时间】:2010-07-21 07:42:09
【问题描述】:
在工作线程中引发事件时,是否可以更改主线程的 CurrentUICulture?
示例代码:
static void Main()
{
//do something
Thread workerThread = new Thread(new ThreadStart(DoWork));
workerThread.Start();
//do something
}
void DoWork()
{
ConnectDatabase();
//do some work
ChangeLanguage(lang);
}
void ChangeLanguage(string lang)
{
//this line changes Culture only for worker thread
System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CreateSpecificCulture(lang);
}
【问题讨论】:
-
您能否指出为什么线程必须更改主线程的属性?这听起来像是一个非常糟糕的设计。也许最好退后一步,为实际问题寻找更好的解决方案。
-
它的 WinForm 客户端应用程序,它的用户设置存储在数据库中。工作线程连接数据库(需要一些时间)。连接成功后,应用程序应根据用户设置设置语言。
标签: c# multithreading globalization cultureinfo