我需要在异步模式下执行一个方法。我尝试创建一个委托,但请求完成后会话被销毁。此功能需要在此之后继续运行,才能使用System.Web.HttpContext.Current.Session
。
是否有一种解决方法允许异步运行的方法在请求完成后继续执行?
谢谢。
我需要在异步模式下执行一个方法。我尝试创建一个委托,但请求完成后会话被销毁。此功能需要在此之后继续运行,才能使用System.Web.HttpContext.Current.Session
。
是否有一种解决方法允许异步运行的方法在请求完成后继续执行?
谢谢。
您可以使用委托(例如 with ThreadPool.QueueUserWorkItem
),但您需要获取对HttpSessionStateBase
委托外部的引用:
HttpSessionStateBase session = Session;
ThreadPool.QueueUserWorkItem(delegate
{
// You can access session variable here
...
});
在您持有参考之前,会话不会被销毁。这里有一个简单的示例:Reporting server side operation progress with jQuery UI Progressbar。