Evenement sur le changement d'une variable ? (multi-threading) [Résolu]

Signaler
Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
-
Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
-
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

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
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
Messages postés
497
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
6
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