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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
}