在多线程/线程池线程中访问asp.net会话
我正在尝试在线程池线程中访问ASP.Net会话。 页面执行将完成,但线程将再执行5-10秒 代码如下所示在多线程/线程池线程中访问asp.net会话,asp.net,vb.net,multithreading,session,Asp.net,Vb.net,Multithreading,Session,我正在尝试在线程池线程中访问ASP.Net会话。 页面执行将完成,但线程将再执行5-10秒 代码如下所示 Dim tContex As HttpContext = HttpContext.Current ThreadPool.QueueUserWorkItem(AddressOf ThreadPoolCallBack, tContex) Public Sub ThreadPoolCallBack(ByVal threadContext As Object) HttpContext.
Dim tContex As HttpContext = HttpContext.Current
ThreadPool.QueueUserWorkItem(AddressOf ThreadPoolCallBack, tContex)
Public Sub ThreadPoolCallBack(ByVal threadContext As Object)
HttpContext.Current = CType(threadContext, HttpContext)
Dim userId As Integer = HttpContext.Current.Session("userId")
DoProcess()
End Sub
方法如下
Dim tContex As HttpContext = HttpContext.Current
ThreadPool.QueueUserWorkItem(AddressOf ThreadPoolCallBack, tContex)
Public Sub ThreadPoolCallBack(ByVal threadContext As Object)
HttpContext.Current = CType(threadContext, HttpContext)
Dim userId As Integer = HttpContext.Current.Session("userId")
DoProcess()
End Sub
在ThreadPoolCallBack方法中,我可以访问HttpContext和Request param变量,但由于丢失会话,我无法访问会话变量。HttpContext.Current*中的会话变为空/无
是否有任何方法可以在另一个线程中访问ASP.Net会话。是的,有一种方法
而是传递会话变量
密码
方法
您将
线程池.QueueUserWorkItem
放在哪里?这不起作用,因为我正在处理直接需要访问会话的现有代码。我无法修改现有的代码库。