cs_nono1664
Messages postés10Date d'inscriptionlundi 24 octobre 2005StatutMembreDernière intervention11 juin 2006
-
10 juin 2006 à 10:09
cs_nono1664
Messages postés10Date d'inscriptionlundi 24 octobre 2005StatutMembreDernière intervention11 juin 2006
-
11 juin 2006 à 14:03
Bonjour,
Je dévellope ces temps ci des composants et donc j'ai du créé des évenements mais mon problème est que c'est evenement peuve etre utilisé que a 1 endroit à la fois . Si jessaye d'utilisé le meme évenement à 2 endroit différant (en meme temp) il y en a un des 2 qui ne va pas marcher !! Alors que 1à la fois les 2 marches. Donc je ne sait pas si je doit rajouter quelque chose dans les déclaration ou autre
Dans mes composant il sont déclarér de cette manière :
public delegate void OnDetectHandler(object sender,double RR);
public event OnDetectHandler OnDetect;
cs_nono1664
Messages postés10Date d'inscriptionlundi 24 octobre 2005StatutMembreDernière intervention11 juin 2006 10 juin 2006 à 13:50
EN fait pour etre plus clair, Sur ma form1, g ce composant, DetectR ( Pour donez plus de précisions c un filtre qui permet de traiter un electrocardiogramme ) et un autre composant qui st un autre filtre et en fait g créé les composant pour qu'il comunique entre eux directement ce qui veut dire que lors de l'instanciation du 2ème filtre, ce composant crée automatiquement l'evenement si l'utilisateur a choisie le filre :
public ECG.DetectR DetectionR
{
get
{
return Detect;
}
set
{
Detect=value;
if (Detect!=null)
Detect.OnDetect +=new ECG.DetectR.OnDetectHandler(Detect_OnDetect);
}
Mais je déclare aussi dans ma form1 :
this.detectR1.OnDetect += new ECG.DetectR.OnDetectHandler(this.ici);
Ce qui fait que normalement je souhaiterai que lors de l'evenement OnDetect il envoi bien mes paramettre au 2 fonction en meme temps mais malheuresement il arrive a en envoyer que a 1 a la fois. mais si j'en déclare que 1 ca marche tres bien...
J'espere que la c plus clair lol merci d'avance pour les réponse
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 10 juin 2006 à 18:05
Ok, donc ce que tu veux dire, c'est que ton event à plusieurs abonné (plusieurs handler en fait).
La liste est stockée dans un tableau et tu peux y avoir accès en appelant la méthode GetInvocationList de ton event. Tu peux vérfier quelles méthodes seront appelées.
Une chose qu'il faut garder en tête, si je me souviens bien, c'est qu'on a aucun moyen de savoir dans quel ordre les éléments seront dans le tableau, et donc aucun moyen de savoir dans quel ordre ils seront executés.
C'est à dire que chaque eventHandler ne soit pas dépendre d'un autre, car on peut pas savoir si celui-ci sera executé avant ou après.
cs_nono1664
Messages postés10Date d'inscriptionlundi 24 octobre 2005StatutMembreDernière intervention11 juin 2006 11 juin 2006 à 08:13
apres vérification, j'ai remarqué que le problème ne venait pas de la ^^ En fait le problème est le suivant par exemple g aussi un composant qu g fait qui permet de tracer des graph mais le probleme c'est que si j'en instancie plusieur par exempl : scop1,scop2,scop3 et que je veuille par exemple appeller la méthode Trace de scop2, il va quand meme tracer comme si j'avais appelez trace depuis scop1 je vous mets un bout du code de mon composant du graph :
cs_nono1664
Messages postés10Date d'inscriptionlundi 24 octobre 2005StatutMembreDernière intervention11 juin 2006 11 juin 2006 à 08:51
c'est vrai que je suis en composant, le problème c'eai que j'avais mit un static sur 'g' alors qu'il ne fallai pas :s dsl du dérangement mais ca fait que 3 semaine que je fait du c# pour mon stage :) Sinon si quelqu'un aurai un tuto ou un cour sur le transfert de message par flow ou flux de donnéé entre composant ca serai cool car j'ai vu que s'est possible en delphi mais j'ai rien trouvé en c# ! merci