假设我在用户登录到我的 mvc 应用程序时调用以下方法:
public static bool IsValidBrowser()
{
var browser = HttpContext.Current.Request.Browser;
if (browser.Browser == "IE") {
if (browser.MajorVersion < 10) {
return false;
}
}
return true;
}
这个方法线程安全吗?显然,我没有在这里修改任何内容,但是 HttpContext.Current
是否有可能在此方法的中间发生变化?
以这种方式编写代码会使其成为线程安全的吗?
public ActionResult Login ()
{
bool validBrowser = IsValidBrowser(HttpContext.Current.Request.Browser);
}
public static bool IsValidBrowser(HttpBrowserCapabilities browser)
{
if (browser.Browser == "IE") {
if (browser.MajorVersion < 10) {
return false;
}
}
return true;
}
最佳答案
HttpContext.Current 本身是一个静态方法,它会从当前线程返回上下文,因此您无需担心。
关于c# - 静态方法线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22842892/