2014-04-03 142 views
0

比方說,我叫當用戶登錄到我的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; 
} 

回答

7

HttpContext.Current本身是一個靜態方法,它會從當前線程返回的情況下讓你有什麼可擔心的。