作为C#的新手,我在理解代表以及文化如何在那里流动时遇到了一些问题。
我有一个类似于此的代码段:
await DoSomething(param1, param2,
async() = {
result = someotherfunc(someinput);
});
现在,我需要根据用户的Locale返回结果,为此我需要为正在运行的线程设置cultureInfo(可以通过将适当的区域设置为Thread.CurrentThread.CurrentCulture
来设置)< / p>
但是,我不确定在哪里设置此CurrentCulture
变量?它应该在代表的定义范围内吗?
此外,我不知道在执行此委托时是否会有新线程。
感谢。
答案 0 :(得分:1)
每个线程都有自己的文化,如果没有明确定义,则从系统文化中派生出来。
为了在所有线程上拥有相同的文化,您可以使用CultureInfo.DefaultThreadCurrentCulture Property为所有线程设置默认文化。
如果您需要针对不同代表的不同文化,请使用显示/打印值的相同方法更改Thread.CurrentThread.CurrentCulture
。