C# 多线程环境中静态类上的线程区域性

C# 多线程环境中静态类上的线程区域性,c#,asp.net,asp.net-mvc,multithreading,globalization,C#,Asp.net,Asp.net Mvc,Multithreading,Globalization,这是我的第一篇帖子,所以请原谅我的错误 我们正在开发一个ASP.NETMVC5应用程序,为最终用户提供多种文化。 Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICulture在Global.asax.cs文件的应用程序\u AcquisiteRequestState()中设置 据我所知,对web应用程序的每个请求都会触发一个新线程。 我创建了一个静态类,根据区域性的不同,该类可以轻松访问一些日期格式字符串等 我

这是我的第一篇帖子,所以请原谅我的错误

我们正在开发一个ASP.NETMVC5应用程序,为最终用户提供多种文化。
Thread.CurrentThread.CurrentCulture
Thread.CurrentThread.CurrentUICulture
在Global.asax.cs文件的
应用程序\u AcquisiteRequestState()
中设置

据我所知,对web应用程序的每个请求都会触发一个新线程。 我创建了一个静态类,根据区域性的不同,该类可以轻松访问一些日期格式字符串等


我的问题是,访问这个静态类的方法并从可能具有不同区域性的请求线程上下文(例如控制器)获取访问器是否有任何问题?静态类将具有哪个区域性?

类本身不具有任何区域性。访问此类的线程具有区域性,并且线程的区域性在类中使用(静态或非静态)

静态实际上是指如何在不同线程之间共享类的状态。您的静态类可以是无状态的(即,它不存储数据,通常是静态类的helper类型),这将为您带来较少的问题

如果在静态类中存储任何状态,则必须小心,原因有二:

  • 一般来说,在多线程环境中更难控制对静态保存数据的访问

  • 如果存储的任何数据都是特定于区域性的,则在使用具有不同区域性的线程时,在解释这些数据时可能会遇到问题


类没有区域性-只有线程有区域性。因此,无论线程调用静态类中的方法是什么,都将决定区域性。很好,这澄清了问题,谢谢!我担心静态类会在应用程序启动时实例化,因此在主线程中“活动”,这可能与请求具有不同的区域性。那就不用担心了。