Les événement sont-ils synchrones ?
Bonjour,
Voici une partie de mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| namespace MonApp
{
public delegate void ClasseEvtEventHandler(object sender, ClasseEvtEventArg e);
public class ClasseEvt
{
public event ClasseEvtEventHandler PLCEvt;
...
private void scanPLC_Elapsed(object sender, ElapsedEventArgs e)
{
...
CreateEvtConfig(res);
...
}
private void CreateEvtConfig(string source)
{
EvtConfig evtConfig = new EvtConfig("evtConfig");
...
OnPLCEvt(new ClasseEvtEventArg(EvtConfig));
....
}
public void OnPLCEvt(ClasseEvtEventArg e)
{
PLCEvt(this, e);
}
}
public class ClasseEvtEventArg : System.EventArgs
{
public Config EvtPLC;
public ClasseEvtEventArg(Config arg)
{
EvtPLC = arg;
}
}
public class ReceptEvt
{
private ClasseEvt clsEvt;
// quelque part dans le contructeur
clsEvt = new ClasseEvt();
clsEvt.PLCEvt += new ClasseEvtEventHandler(clsEvt_PLCEvt);
private void clsEvt_PLCEvt(object sender, ClasseEvtEventArg e)
{
Mon Traitement
}
}
} |
Tout ça pour dire que pour sortir de la fonction CreateEvtConfig il faut que je soit sorti de clsEvt_PLCEvt.
Je pensais que ClasseEvt "balancait" l'événement à tous ses abonnés et continuait son chemin sans attendre que les abonnés aient fini le travail.
Est-ce que j'ai mal compris la notio d'évément ou ai-je mal implémenté l'évenement ?
Merci.