Frederyck
Messages postés63Date d'inscriptionvendredi 6 décembre 2002StatutMembreDernière intervention16 janvier 2009
-
31 janv. 2005 à 14:47
cs_zanzan
Messages postés32Date d'inscriptionlundi 3 février 2003StatutMembreDernière intervention25 juillet 2012
-
29 juin 2010 à 09:23
Salut à toutes et à tous,
alors voici mon soucis, dans une application que je réalise en C#, j'utilise dans un de mes objets (que j'appelerai ici objB) un objet Thread, celui-ci est associé à une méthode qui se charge d'exécuter une requête HTTP et d'enregistrer le contenu. La durée d'enregistrement est fonction du contenu. Je dispose d'une autre classe (objA) qui elle possède un Timer qui tout les X millisecondes va créer un certains nombre d'objB et les initialiser (en donnant entre autre l'adresse de l'url à exécuter). Jusqu'ici tut va bien dira t'on .
Mon soucis est qu'apres la 1ère exécution, dans la méthode de mon timer je réintialise mon objetA, lors du retour à la phase d'initialisation des objets B, je rencontre une exception au moment du objBThread.start() qui est censé lancer la méthode d'enregistrement. L'erreur est " Le thread est en cours d'exécution ou arrêté ; il ne peut pas redémarrer."
Je n'arrive pas à comprendre pourquoi car en principe il s'agit d'un nouvel objet...Alors où est le lien ? Les précédents threads sont ils toujours en ours d'exécution ? Faut il forcer la fin d'un thread une fois que le traitement dans la méthode est terminé ? Comment faire cela ?
MorpionMx
Messages postés3466Date d'inscriptionlundi 16 octobre 2000StatutMembreDernière intervention30 octobre 200857 31 janv. 2005 à 20:20
Comme ca, je sais pas trop d'ou vient le prbleme. Mais essaie
d'attendre la fin d'execution des threads (apres ton thread.Start(); tu
forces l'attenre en ajoutant thread.Join());
Au pire, Abort tes Threads quand ton timer se déclenche...
Mais sinon, je pense qu'on arriverais mieux a visualiser la chose avec un peu de code.