【发布时间】:2015-03-29 01:54:59
【问题描述】:
我有一个 MVC 应用程序,我在其中覆盖了基本控制器的 OnActionExecuting() 方法来设置我的线程文化:
protected override void OnActionExecuting(ActionExecutingContext filterContext) {
var langCode = GetLangCode();
Thread.CurrentThread.CurrentUICulture = new CultureInfo(langCode);
Thread.CurrentThread.CurrentCulture = new CultureInfo(langCode);
}
随着我开始更多地异步编程,我很好奇如果我们将已修改文化的线程返回到线程池,并在异步任务完成时分派一个新线程,文化是如何保持的?有什么我应该注意的问题吗?
【问题讨论】:
-
该线程处理的下一个请求不会也通过
OnActionExecuting进行吗? -
@LasseV.Karlsen 每个请求都应该执行
OnActionExecuting,但是每个请求不能由多个线程来服务吗?如果在我的数据访问层中我使用异步模型与数据库进行通信,我能否在请求过程中获得两个单独的线程,一个在文化已被修改的地方,另一个在没有被修改的地方? -
这似乎是可能的,对此了解不够,抱歉。您是否有机会使用 .NET 4.5?如果是这样,请查看CultureInfo.DefaultThreadCurrentCulture
标签: c# asp.net-mvc async-await