C# 多线程环境中静态类上的线程区域性
这是我的第一篇帖子,所以请原谅我的错误 我们正在开发一个ASP.NETMVC5应用程序,为最终用户提供多种文化。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应用程序的每个请求都会触发一个新线程。 我创建了一个静态类,根据区域性的不同,该类可以轻松访问一些日期格式字符串等 我
Thread.CurrentThread.CurrentCulture
和Thread.CurrentThread.CurrentUICulture
在Global.asax.cs文件的应用程序\u AcquisiteRequestState()
中设置
据我所知,对web应用程序的每个请求都会触发一个新线程。
我创建了一个静态类,根据区域性的不同,该类可以轻松访问一些日期格式字符串等
我的问题是,访问这个静态类的方法并从可能具有不同区域性的请求线程上下文(例如控制器)获取访问器是否有任何问题?静态类将具有哪个区域性?类本身不具有任何区域性。访问此类的线程具有区域性,并且线程的区域性在类中使用(静态或非静态) 静态实际上是指如何在不同线程之间共享类的状态。您的静态类可以是无状态的(即,它不存储数据,通常是静态类的helper类型),这将为您带来较少的问题 如果在静态类中存储任何状态,则必须小心,原因有二:
- 一般来说,在多线程环境中更难控制对静态保存数据的访问
- 如果存储的任何数据都是特定于区域性的,则在使用具有不同区域性的线程时,在解释这些数据时可能会遇到问题