Evenement sur le changement d'une variable ? (multi-threading)

Résolu
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 - 29 août 2005 à 11:33
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 - 29 août 2005 à 13:41
Bonjour à tous,



j'aimerais déclarer un évènement sur le changement d'une variable dans une autre classe. Pour
l'instant, je scanne ce changement par une boucle while dans ma première classe, et je me suis
aperçu que je perdais des données (c'est dans le cadre de la réception
sur port série).



En gros voici l'architecture du truc :

[Form1]
[Form2]


fonction1( ) <-------- variable _ma_variable

{
\ ma_fonction( )

...

`-- {_ma_variable = valeur1;} //Le passage à ma valeur1 doit
déclencher Form1.fonction1( )


}



petit précision, il faut que fonction1 se fasse en parallèle de ma_fonction( ) càd :



ma_fonction( )


{


fonction1( ) <-----------------
_ma_variable = valeur1;

{
...

...
...

}
}



et non pas :



ma_fonction( )


{


fonction1( ) <-----------------
_ma_variable = valeur1;

{


...



} --------------------------> ...


...


}

Pour l'instant, j'ai quelques idées qui se mélangent dans ma tête entre delegate, et évènement, mais ce n'est pas très clair.

Si qqln veut bien me filer un coup de main, pour définir tout ça.

2 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
29 août 2005 à 12:11
bah, normalement si cette variable est dans une autre classe, tu y accèdes par une propriété. non ?

donc ta classe qui contient ta variable, ajoute ceci :

public event EventHander MaVariableChanged;

dans ta propriété :

public string MaVariable {
get {return maVariable;}
set {
maVariable = value;
if (MaVariableChanged != null) {
MaVariableChanged(this, EventArgs.Empty);
}
}

et dans ta form1 tu t'abonnes à l'évènement MaVariableChanged pour déclencher ta fonction1

Sébastien FERRAND
2
el_teedee Messages postés 497 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 13 juillet 2015 9
29 août 2005 à 13:41
Ouais, bah c bien à ca que je pensais



Déclarer l'évènement, et le déclencher dans la propriété de ma
variable, mais je suis pas aussi catégorique que toi dans la syntaxe de
tout ça :p

(entre parenthèse, c'est sur la variable etat_navette que je dois capter le changement)



Merci bcp Seb
0
Rejoignez-nous