我很好奇一件事。在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' ?