设置默认文化。是特定于上下文的吗? (ASP.NET)

时间:2014-05-08 14:50:40

标签: c# .net task-parallel-library cultureinfo

我很好奇一件事。在Application_AcquireRequestState global.asax事件中,我正在为将来创建的线程和当前正在执行的线程设置默认区域性。这是使用的代码。

CultureInfo.DefaultThreadCurrentCulture = new CultureInfo('some-CULTURE');

原因如下。假设线程具有fr-FR的文化(并且它不是默认文化),并且在该线程内运行任务,运行该任务的该线程上的文化将与它所源自的线程不同。来自。我不希望这种情况发生,这就是我设置默认文化的原因。这一切都发生了,因为CultureInfo没有从线程复制到线程。所以现在假设我的网站有两个并发请求。我设置默认文化来假设' fr-FR'然后立即通过第二次请求将默认文化设置为' en-US' (并且系统区域设置是不同的)现在,如果我在第一个请求下运行的代码中创建一个线程,那么线程文化将是' fr-FR'或者' en-US' ?我想它会是' en-US'因为上次设置默认文化时,它被设置为' en-US'。或者将线程创建或使用的线程将默认文化设置为' fr-FR'拥有文化&fr-FR'以及由设置默认文化' en-US'的线程创建或使用的线程。将是' en-US' ?

0 个答案:

没有答案