在C#中的多线程环境中使用ResourceManager的正确方法?

时间:2012-02-07 12:51:22

标签: c# multithreading localization

所以,我现在在一个静态变量中保存一个ResourceManager实例,可以访问我的解决方案中的所有类。我已经用它来获取单线程操作的翻译内容,它工作得很好而且花花公子。

但是,我添加了一个执行时间稍长的操作,我需要更新UI中的进度。对于进度信息字符串,我也使用ResourceManager。事情是,如果它在一个单独的线程上执行,那么相同的代码行将返回null(例如,Localization.ResourceManager.GetString(“ProgressInformation1”))。但是如果我不为它启动一个新线程,它会按预期返回字符串。我检查了MSDN库,根据它,ResourceManager应该是线程安全的。那么我做错了什么?

1 个答案:

答案 0 :(得分:1)

也许您需要为您运行的线程指定CurrentCulture和CurrentUICulture。 只需使用“主”线程中的那些。