Ok, alors voila comment je m'abonne aux évènements de m_process dans MyThreadTraitementHandle :
Dans la fonction initialisation appeler par le constructeur de MyThreadTraitementHandle :
1 2 3 4 5 6 7 8 9
| private void initialisation()
{
m_process = new Trait();
m_arg = new Argument();
Runing = false;
m_process.monEventCoefEnCours += new EventCoefEnCOurs(process_monEventCoefEnCours);
m_process.monEventCoefRelation += new EventCoefRelation(process_monEventCoefRelation);
m_process.monEventIterEnCours += new EventIterEnCours(process_monEventIterEnCours);
} |
Ensuite ces évènements sont récupérer comme suit dans MyThreadTraitementHandle (exemple pour EventCoefRelation) :
1 2 3 4 5
|
public void process_monEventCoefRelation(double arg1)
{
OnCorrelationEventHandler(arg1);
} |
Il sont donc réémit par MyThreadTraitementHandle. Voici comment il sont déclaré (exemple encore pour EventCoefRelation) :
Dans le namespace se trouve les délégué comme suit:
public delegate void CorrelationEventHandler(double _r);
puis dans la classe MyThreadTraitementHandle on trouve :
public event CorrelationEventHandler OnCorrelationEventHandler;
Je ne me suis pas encore inscrit aux évènements de MyThreadTraitementHandle. Cette classe est utilisé comme ceci depuis ma Form :
Variable de ma Form :
1 2
| private Thread myThreadCalcCoef;
private MyThreadTraitementHandle ProcessWorker = new MyThreadTraitementHandle(); |
Dans le constructeur de ma form :
private Thread myThreadCalcCoef; myThreadCalcCoef = new Thread(new ThreadStart(ProcessWorker.DoWork));
Après une execution pas à pas du programme le problème survient lors que OnCorrelationEventHandler(arg1); est appelé depuis MyThreadTraitementHandle.
Voila si cela peu vous éclairer, moi ça m’échappe complètement...
Partager