2012-07-25 3 views
0

J'ai une application Web C# ASP.NET qui démarre un thread exécutant certaines méthodes dans une classe appelée SiteCrawler.cs.Accédez à HttpContext.Current.Application à partir du traitement par lots C#

In HttpContext.Current.Application Je souhaite enregistrer une valeur lorsque tous les threads sont terminés. Mon problème est que l'objet HttpContext.Current est null dans les threads engendrés parce qu'il n'existe pas là.

J'ai essayé de chercher autour de chaque pouce de Stackoverflow pour trouver une solution, mais sans chance ....

Répondre

0

Je recommande soit passer votre HttpContext en tant que paramètres lors de la ponte de vos fils. Personnellement, je voudrais supprimer votre dépendance sur HttpContext et créer un objet dont le travail consiste à synchroniser vos threads (ou stocker leurs résultats) et peut être utilisé pour effectuer un post-traitement une fois le traitement parallèle terminé.

HttpContext.Current.Application est un singleton, il existera dans tous les threads ... Est-ce une application web? Si ce n'est pas le cas, vous pouvez toujours initialiser l'application vous-même et l'affecter à HttpContext.Current.Application.

+0

Vous avez si bien commencé, puis vous êtes tombé de la falaise. 'HttpContext.Current' est un thread statique, sinon vous auriez un problème à traiter plus d'une requête à la fois. – leppie

Questions connexes