我们的应用程序允许用户更改他们运行它的文化,并且该文化可以不同于底层的操作系统文化。我发现这样做的唯一方法是为每个线程设置 Thread.CurrentThread.CurrentCulture 和 Thread.CurrentThread.CurrentUICulture。
唯一的问题是我们必须为每个线程设置文化,并且我们需要记住在创建新线程时这样做。如果您将线程设置为另一种文化,然后创建一个新线程,它将获得操作系统的文化,而不是创建它的线程的文化。
我想找到一种更好的方法来做到这一点。我只能想到两件事,但我不知道是否有可能。
- 在应用程序级别设置文化,以便所有线程默认为该文化。这可能吗?
- 我可以订阅的任何地方都有线程创建事件吗?这样我可以设置一个处理程序来设置线程创建的文化。
任何想法或帮助都会受到欢迎,即使我需要 PInvoke 到 Win32 API。提前致谢。
编辑:我发现这个问题很相似,但没有找到答案。