2009-05-21 31 views
7

假設您想要共享某個資源,例如ASP.NET Web應用程序中所有線程/會話中的類或變量。什麼是更好的?什麼是更好的:靜態變量V.S. Asp.NET應用程序會話?

1)一個靜態變量具有該靜態變量的線程安全訪問器?

2)還是一個ASP.NET應用程序會話變量?

+3

這是http://stackoverflow.com/questions/303725/asp-net-application-state-vs-a愚弄的人-static-object – 2009-05-21 17:18:10

+0

啊,好吧......我沒有看到......我該怎麼辦才結束這個問題呢? – 7wp 2009-05-21 17:33:26

回答

7

如果您只有其中之一,則幾乎沒有區別。

如果你有幾個,你應該使用靜態變量而不是Application變量。 Application.Lock方法將鎖定全部Application變量,而您可以爲靜態變量使用單獨的同步標識符,以便每個鎖僅影響訪問該特定變量的代碼。

0

這是一種常見的情況,您需要瀏覽多個頁面並收集數據。我將爲此場景使用Session對象。當完整的應用程序需要同一個對象時,應該使用靜態變量。

如果要保存的值取決於用戶,請使用Session。

0

這是真正的會話變量應該只用於如果你想存儲整個會話的值,但是如果你希望變量被初始化並在表單之間使用並且如果在應用可以通過整個應用程序爲同一個對象使用靜態變量。

相關問題