tache lourde avec threads
Salut tout le monde
Je développe une application, détecter les routes et dessiner leurs bordures sur l’image…, en c# qui exécute des fonctions lourdes se trouvant toutes dans une seule classe et qui font appel les unes aux autres.
J’ai besoin de rajouter une fonction qui consiste à arrêter l’exécution à un moment donné pour se contenter du résultat préliminaire, ceci doit être fait avec les threads et la méthode invoke…
A présent je ne parviens pas à ce résultat, en appuyant sur la forme en plein exécution celle-ci devient bloquante, merci de me donner une idée comment le faire.
Voici le schéma approximatif :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| private void ButtonExecute_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(launchInvoke));
t.Start();
}
private void launchInvoke()
{
pictureBox1.Invoke(new myDelegate (myclasse.myMethode), this);
}
private delegate void myDelegate(baseForm bForm);
private void ButtonStop_Click(object sender, EventArgs e)
{
Stop = true;
}
myclasse.myMethode se charge de trouver les points des bordures et de les mettre dans un ArrayList soit arrayListPoints, puis dans lévènement :
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
// dessiner les bordures en se servant de arrayListPoints
} |