begin process at 2012 05 28 07:25:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Divers

 > 

Autre

 > 

Thread et page


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Thread et page

jeudi 12 juin 2008 à 17:47:13 | Thread et page

Warny

Bonjour,
J'ai besoin dans une application ASP.NET en C# d'exécuter un processus assez...très lourd.
Je me suis donc dit qu'il serait interessant de créer un thread qui execute ma fonction.
Seulement, j'ai un petit problème : quand ma page a été intégralement renvoyée au client, l'objet session du contexte disparait. Et évidement... j'en ai besoin.
Quelqu'un saurait-il comment conserver cet objet pendant l'éxecution du traitement ?

Console.Out.WriteLine("Warny")
Il y a 10 types de personnes
Ceux qui comptent en binaire... et les autres
jeudi 12 juin 2008 à 23:30:07 | Re : Thread et page

jesusonline

Membre Club Administrateur CodeS-SourceS
Bonsoir,

quand tu créer ton thread, tu peux utiliser un ParameterizedThread et lui envoyer l'objet Session.

Thread t = new Thread(new ParameterizedThread(Do));
t.Start(Page.Session);

private void Do(Object context){

     HttpSessionState session = (HttpSessionState)context;

}


Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
vendredi 13 juin 2008 à 09:14:48 | Re : Thread et page

Warny

Salut,

J'y ai pensé (et ça marche), mais le problème c'est que j'appelle des bibliothèques externes qui nécessitent l'emploi du context et je ne peux pas leur passer l'objet session.

Console.Out.WriteLine("Warny")
Il y a 10 types de personnes
Ceux qui comptent en binaire... et les autres
vendredi 13 juin 2008 à 09:43:44 | Re : Thread et page

jesusonline

Membre Club Administrateur CodeS-SourceS
HttpContext.Current possède un setter, tu peux essayer de le définir dans ton thread ... je ne l'ai jamais utilisé donc je ne sais pas quelle comportement cela peut avoir.


Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
vendredi 13 juin 2008 à 09:50:34 | Re : Thread et page

Warny

Re (et merci de répondre),

J'ai utilisé le setter (qui fonctionne) : dans un thread le context est perdu, je lui redonne donc à manger le context de la page. C'est là qu'arrive mon problème : dès que la page est finie d'envoyer au client, le context perd l'objet session, celui-ci ne dispose pas de setter et en fait je ne maitrise absolument pas le moment où il est perdu.

Console.Out.WriteLine("Warny")
Il y a 10 types de personnes
Ceux qui comptent en binaire... et les autres
vendredi 13 juin 2008 à 10:51:35 | Re : Thread et page

jesusonline

Membre Club Administrateur CodeS-SourceS
Ca ne m'étonne pas tellement, à mon avis une fois que la requete est terminé le HttpContext est disposed, ce qui est tout à fait logique, du coup la session & co devient null.
Si tu es courageux regarde dans Reflector où cela peut se passer (je viens de regarder rapidement et je pense que c'est autour de la méthode PipelineRuntime.DisposeHandlerPrivate), cela ne t'avancera surement à rien mis à part comprendre pourquoi cela ne fonctionne pas.

C'est un sujet que je ne connais pas très bien, mais il doit y avoir moyen d'avoir son propre contexte au niveau du thread (peut être en utilisant l'attribut ThreadStaticAttribute mais il doit y avoir plus propre).

Le plus simple pour moi est de se passer de la session, explique nous pourquoi tu en as besoin, on trouvera peut être une solution alternative.




Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
vendredi 13 juin 2008 à 17:32:48 | Re : Thread et page

Warny

Re,
Donc j'ai regardé, il n'y a pas de dispose dans le context ou la session. Il semble que le contexte soit abonné à un évènement qui indique quand la réponse a été intégralement envoyé au client mais je n'ai pas encore trouvé où.
Je continue à chercher.

Console.Out.WriteLine("Warny")
Il y a 10 types de personnes
Ceux qui comptent en binaire... et les autres


Cette discussion est classée dans : page, objet, thread


Répondre à ce message

Sujets en rapport avec ce message

Problème avec l'objet Session [ par Tibo ] J'ai un problème avec un objet session qui se perd entre deux pages : j'appelle une page, l'objet session contient des valeurs, avec un script en Java Objet Response error 'ASP 0156 : 80004005' ... [ par doodoo512 ] Bonjour,Je suis débutant en ASP et je bute depuis une semaine sur des problèmes de redirection dans mes pages ASP.L'erreur est du type : Objet Respons PB page ASP - DLL activeX - frameset [ par neibaf ] Bonjour,J'ai un problème entre une page ASP et une DLL.Au début de mon cote je déclare un objet pour faire un lien avec la DLL:dim obj_dialogueset obj Objet Session [ par Lexounet ] Voila g un petit probleme ki est le suivant :J'accede a une page et je récupere une donnée qui m'est utile et que j'affiche de cette maniere:Session(" Objet Response erreur 'ASP 0156 : 80004005' [ par Bfar ] j'essaye de passer d'une page à une autre avec la méthode Response.Redirect, à ce moment j'ai le message:Objet Response erreur 'ASP 0156 : 80004005' L o secour problème avec un mailing [ par antelmus ] salu a tous,je suis en train de créer un mailing dont le contenu est une page html or cette page varie assez souvent. sachant que j'utilise objet_NewM Utilisation d'un objet tout au long d'une session. [ par romtrico064649 ] Bonjour, J'ai un problème qui devrais être assez facille à résoudre pour un pro de l'ASP:Voila :Je cré en ASP une classe.  OK            Class Ma_ usercontrole : La référence d'objet n'est pas définie à une instance d'un objet. [ par coulis ] Bonjour à tous,Voilà mon problème: je viens de créer une nouvelle application .net et j'ai l'erreur suivante dès que je positionne un usercontrol ? La Fermer une connexion OU pas ? [ par jmtoulon ] Bonjour, voici une partie de mon code que je place en début de chaque page aspx <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:o Variable Asp vers Xsl [ par roro59650 ] Bonjour,dans ma page Asp, j'appelle une page Xsl qui affiche les données d'un fichier Xml.Tout va bien.Sauf quand je veut passer une variable Asp vers


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales