2012-07-25 54 views
0

我有一个C#ASP.NET web应用程序,它启动一个线程,在一个名为SiteCrawler.cs的类中运行一些方法。从批处理过程访问HttpContext.Current.Application#

HttpContext.Current.Application我想保存一些值,当所有线程完成运行。我的问题是产生线程中的HttpContext.Current对象是null,因为它在那里不存在。

我已经尝试#1的每一寸搜索周围找到一个解决方案,但没有任何运气....

回答

0

产卵的线程时,我会建议无论是通过你的HttpContext作为参数。就我个人而言,我将删除您对HttpContext的依赖关系,并创建一个对象,其作用是同步您的线程(或存储其结果),并可用于在并行处理完成后执行后处理。

HttpContext.Current.Application是一个单例,它将存在于所有线程中...这是一个Web应用程序吗?如果不是,您可以始终自行初始化应用程序并将其分配给HttpContext.Current.Application。

+0

你开始这么好,然后从悬崖上掉下来。 'HttpContext.Current'是线程静态的,否则你会遇到一次服务多个请求的问题。 – leppie 2012-07-25 04:58:57