2011-02-23 36 views
7

Khi một chuỗi async mới được sinh ra bằng chữ ký này, đối tượng phiên ASP.NET có sẵn cho chuỗi mới này không?Chủ đề và phiên không đồng bộ

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

Trả lời

5

Tôi không biết bạn đang nói về đối tượng phiên nào nhưng nếu bạn nói về Phiên ASP.NET, nó có thể không có sẵn. Ngoài ra nó là thực hành xấu để truy cập vào phiên ASP.NET từ chủ đề nền. Tôi khuyên bạn nên chuyển một đối tượng có chứa tất cả các thông tin cần thiết cho nền tảng này thay vì có nó kéo công cụ từ một phiên => làm cho nó ít tái sử dụng.

Thông thường nếu người gọi của chủ đề này chờ nó hoàn thành phiên nên có sẵn tất cả cùng nhưng thành thật thiết kế xấu và tôi chỉ đơn giản là tránh nó.

+0

Vâng, đó là đối tượng phiên ASP.NET tôi đang nói về. Và đó là vì đối tượng phiên ASP.NET không phải là chủ đề an toàn? –

+0

Tôi đã gắn thẻ lại câu hỏi của bạn để làm cho điều này rõ ràng hơn. –

+2

Và tôi nghĩ rằng ngay cả khi nó có sẵn khi thread bắt đầu, nó có thể được xử lý bất cứ lúc nào, mặc dù nếu người gọi sẽ đợi tác vụ không đồng bộ hoàn thành trước khi thoát, phiên sẽ vẫn còn trong nhiệm vụ. –

Các vấn đề liên quan