C# 设置默认区域性。它是特定于上下文的吗?(ASP.NET)

C# 设置默认区域性。它是特定于上下文的吗?(ASP.NET),c#,.net,task-parallel-library,cultureinfo,C#,.net,Task Parallel Library,Cultureinfo,我对一件事很好奇。在全局.asax的事件中,我正在为将来创建的线程和当前执行的线程设置默认区域性。这是使用的代码 CultureInfo.DefaultThreadCurrentCulture = new CultureInfo('some-CULTURE'); 原因如下。假设线程的区域性为fr(并且它不是默认区域性),并且当您在该线程内运行任务时,运行该任务的线程上的区域性将不同于它起源的线程。我不希望这种情况发生,所以我要设置默认文化。这一切都是因为CultureInfo没有从一个线程复制

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

CultureInfo.DefaultThreadCurrentCulture = new CultureInfo('some-CULTURE');
原因如下。假设线程的区域性为
fr
(并且它不是默认区域性),并且当您在该线程内运行任务时,运行该任务的线程上的区域性将不同于它起源的线程。我不希望这种情况发生,所以我要设置默认文化。这一切都是因为CultureInfo没有从一个线程复制到另一个线程。现在假设有两个并发请求到达我的网站。我将默认区域性设置为“fr-fr”,然后在第二个请求中,默认区域性立即设置为“en-US”(系统区域设置有所不同),现在如果我在第一个请求下运行的代码中创建一个线程,那么线程区域性是“fr-fr”还是“en-US”?我想应该是“en-US”,因为上次设置默认区域性时,它被设置为“en-US”。或者,由将默认区域性设置为“fr-fr”的线程创建或使用的线程是否具有区域性“fr-fr”,而由设置默认区域性“en-US”的线程创建或使用的线程是否具有“en-US”