probleme de class et de thread
-
vendredi 22 juin 2012 15:34
bonjour,
pendant l’exécution de mon programme je crée plusieurs objet d'une même classe.
chacun de ces objet pendant sa création fait appelle a des thread pour récupérer les valeur de ces champs.
lorsque je créé un deuxième objet de la même classe et donc exécute de nouveau thread pour récupérer les valeur de se nouvelle objet, cela se fait sans problème sauf que lorsque la création de cette objet est terminer et que je revient a l’exécution de mon code, le premier objet se retrouve affubler des valeurs du deuxième et donc les deux objets se retrouve identique or il vont chacun chercher des valeur différente, j'aimerais savoir comment faire pour que mes objet ne soit pas ré-écrit lorsque j'en créé de nouveau.
exemple:
public static AutoResetEvent autoEvent; //fille d'execution principale autoEvent = new AutoResetEvent(false); MonObjet obj1 = new MonObjet(); autoEvent.WaitOne(); MonObjet obj2 = new MonObjet(); //fille d'excution principale public class MonObjet { public MonObjet() { find_value(); } public void find_value() { Thread find = new Thread(found); } public void found() { // ici le code de recherche de valeur autoEvent.Set(); } }donc la a la fin de l'execution de la création du deuxiéme objet sa me ré-écrit le premier avec les valeur trouver pour le deuxiéme et je me retrouve avec deux objet identique.
donc si quelqu'un sais comment faire pour que les champ de mes objet ne soit pas modifier lors de la création de nouveau objet je suis preneur.
Toutes les réponses
-
dimanche 24 juin 2012 18:43Modérateur
Bonjour,
Pouvez-vous nous montrer le vrai code de votre application, car nous n'arrivons pas à trouver d'où peut provenir votre problème.
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 -
lundi 25 juin 2012 09:42
le problème est que je suis stagiaire et je ne peut donc pas vous communiquer mon code.
mon problème est qu'as chaque fois que je crée un nouvelle objet se sont des sonde environnemental que j’interroge en SNMP, je récupère plusieurs information sur chaque sonde, et je parallélise se traitement par du multi-threading. le problème survient lorsque je crée un nouvelle objet de la classe sonde sa me ré-écrit le précédent avec les valeurs de la précédente se qui a la fin me donne une liste de 8 sonde identique a la dernière ajouter. se qui ne va pas du tout vous comprenez.
déroulement du programme:
le thread principale de l'application (celui qui est automatiquement crée) crée un objet sonde, lors de sa création cette objet remplie ces différent champs par le biais de thread qui interroge la sonde correspondante. puis une fois l’événement retourner comme quoi la sonde a bien récupérer ces valeur, le thread principale crée la suivante qui elle même récupère ces valeur lorsqu'elle a finie, je remarque que la première a était ré-écrite avec les valeur de la deuxième.
merci d'avance pour la réponse que vous pourrais me fournir
-
lundi 25 juin 2012 13:49
j'ai finalement trouver ou était le problème, cela venais du fait que j'ai une class ThreadManager qui s’occupe de la création des thread et de récupérer leur valeur. j’utilise le même objet de cette class pour tout mes objet maintenant chaque objet a sont threadManager et je n'ai plus le problème de ré-ecriture.
merci quand même du temps que vous avez passe a essayer de m'aider.
cordialement Demnkill
- Marqué comme réponse demnkill lundi 25 juin 2012 13:49

