2010-03-09 52 views
1

我有以下問題。併發請求期間訪問會話值

在一個請求中我正在更新會話變量。 在另一個請求中,我試圖訪問該會話值,但它被阻止,直到第一個請求完成。

我使用C#與ASP.NET 2.0

UPDATE

我的頁面代碼如下所示。

while(int progress = DoWork() && progress <= 100){ 
    Session["Progress"] = progress; 
} 

和我的處理程序只是返回會話值。

context.Response.Write(Session["progress"].toString()); 
context.Response.End(); 
+0

這聽起來像我問這個問題的同樣的問題: http://stackoverflow.com/questions/5749532 – 2011-04-27 15:13:09

回答

0

由於開發應用程序的本質,您確實不應該與ASP.net一起運行併發調用。這聽起來像一個正常的鎖定機制,你唯一能做的就是迎合一個鎖,並且保持線程在等待另一個線程完成。

如果可能的話發佈一些關於你在同一時間運行多個線程的代碼,可能有更好的方法來做到這一點。

+0

@stalkerh我已經更新了問題 – developer 2010-03-09 10:53:23