2011-02-23 116 views
7

當使用此簽名生成新的異步線程時,ASP.NET會話對象是否可用於此新線程?異步線程和會話

IAsyncResult asyncCall = f.BeginInvoke(null, f); 
+0

http://stackoverflow.com/questions/1382791/asp-net-what-to-do-if-current-session-is-null/1382811#1382811 – driis

回答

5

我不知道哪些會話對象,你是在談論,但如果你談論的ASP.NET會話可能無法使用。從後臺線程訪問ASP.NET Session也是不好的做法。我建議你將包含所有必要信息的對象傳遞給此背景花紋,而不是將其從會話中拉出來=>使其不易重複使用。

一般來說,如果該線程的調用者等待其完成會話應提供所有沿,但老實說它是不好的設計,我會簡單地避開它。

+0

是的,它是ASP.NET會話對象I我在說什麼。這是因爲ASP.NET會話對象不是線程安全的? –

+0

我已經重新標記了您的問題以使其更清楚。 –

+2

我會認爲,即使它的可用線程啓動時,它可以放置在任何時間,但如果主叫方是要等待異步任務退出之前完成,會議應繼續通過任務。 –