我有一个C# ASP.NET应用程序,启动了大约25个不同的线程来运行SiteCrawler.cs类中的一些方法。
在HttpContext.Current.Session
中,我想保存用户进行的搜索结果,并在所有线程完成运行后向用户呈现它。我的问题是,在派生的线程中,HttpContext.Current
对象为空,因为该对象在那里不存在。
除了使用会受到多线程应用程序限制的session之外,我还有什么其他选项可以保存用户/会话特定数据?
我已经尝试过四处搜索Stackoverflow以找到解决方案,但没有任何运气...
HttpContext
的方法是通过使用SynchronizationContext
。我不会在这里详细说明,我只会指向这篇详尽而写得很好的博客文章,它回答了你关于HttpContext
的问题,以及更复杂的线程场景。在这篇文章中,他提到了Stephen Toub的经典文章[ExecutionContext vs SynchronizationContext](http - Mark