异步线程和会话

Nar*_*ram 7 c# asp.net session asynchronous

当使用此签名生成新的异步线程时,ASP.NET会话对象是否可用于此新线程?

IAsyncResult asyncCall = f.BeginInvoke(null, f);
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 5

我不知道你在谈论哪个会话对象,但如果你谈论ASP.NET会话它可能不可用.从后台线程访问ASP.NET会话也是不好的做法.我建议您将包含所有必要信息的对象传递给此背景,而不是从会话中提取内容=>使其不再可重用.

通常,如果这个线程的调用者等待它完成会话应该一直可用,但老实说这是糟糕的设计,我会简单地避免它.

  • 我认为即使它在线程启动时可用,它也可以随时处理,但如果调用者要在退出之前等待异步任务完成,则会话应该保留在任务中. (2认同)