Bonjour à tous,
J'ai un thread qui réalise une boucle while (lecture de fichier...). Comment faire en sorte qu'il boucle tant qu'un AutoResetEvent n'a pas été signalé. En gros j'aimerais pouvoir interrompre ce thread au signalement d'un évènement...
Version imprimable
Bonjour à tous,
J'ai un thread qui réalise une boucle while (lecture de fichier...). Comment faire en sorte qu'il boucle tant qu'un AutoResetEvent n'a pas été signalé. En gros j'aimerais pouvoir interrompre ce thread au signalement d'un évènement...
je suis gentil aujourd'hui :)
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 using System.Threading; public class Thread : System.Windows.Forms.Form { // ........ // Evènement de signal de fin de thread private AutoResetEvnet _endThreadCalculsEvent = new AutoResetEvent(false); // Pour arrêter le thread private void Button2_Click(Object sender, System.EventArgs e) { // L'evenement passe à l'état signalé _endThreadCalculsEvent.Set(); // On attend la fin du thread. _threadCalculs1.Join(); } // Fonction du thread private void ThrFunc1() { try { Calculs(1000); } Catch (Exception ex) { Debug.WriteLine(ex.ToString()); } } private void Calculs(int tempor) { // Si l'évenement est à l'état signalé, WaitOne renvoie true et la boucle se termine. while (! _endThreadCalculsEvent.WaitOne(tempo, false) ) { // C'est ici ou notre thread fait son travail // ..... } } }
Un grand merci pour ta gentillesse... :D
J'ai encore une petite question... A quoi sert le paramètre false de la méthode WaitOne de l'évnènement ??? Que veulent-ils dire par "quitter ou non le domaine de synchronisation" ??? Là, j'abuse vraiment de ta gentillesse... :?
Je m'étais déjà cassé la tête dessus sans vraiment trouver
suis cette discussion. c'est un début de piste
http://discuss.develop.com/archives/...&F=&S=&P=23212