salut tout le monde
j'ai besoin de vos aides,
je veut coder une fonction utilisant Sleep() pour "dormir" un certain temps et cela dans une boucle testant si la valeur Terminated du thread n'est pas à True?
Version imprimable
salut tout le monde
j'ai besoin de vos aides,
je veut coder une fonction utilisant Sleep() pour "dormir" un certain temps et cela dans une boucle testant si la valeur Terminated du thread n'est pas à True?
Bonjour
Il faut nous en dire plus.
A quoi sert de faire dormir un thread par un Sleep et de arrêter de le faire dormir donc si une variable change d’état ??????
A moins que tu souhaite qu'a la fin d'un thread un autre continu, dans ce cas la va voir du cote de Thread.join
Cordialement
slt;
j'ai une fonction lire_plaque. je veut faire une classe thread et mettre cette fonction dans une boucle testant si la valeur Terminated du thread n'est pas à True?
merci
Bonjour
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 public class EventThread { private readonly Thread eventThread; private bool stop = false; public EventThread() { eventThread = new Thread(eventThreadProc); eventThread.Name = "my thread"; eventThread.Start(); } private void eventThreadProc() { while (!stop) { //fait ce que tu veux } } } public void stopThread() { stop = true; }
Cordialement
merci
salut,
j'ai une form ( frm1 ) et une classe ( thread ).
la form frm1 contient une fonction ( lire_plaque ).
comment faire pour lancer la fonction à partir de la classe thread?
je fais :
frm1.lire_plaque()
mais ca marche pas!!!!!!!!!
merci
salut,
concernant cette partie:
la fonction lire_plaque est situé dans la form frm1Code:
1
2
3
4
5
6
7
8 private void eventThreadProc() { while (!stop) { frm1.lire_plaque();// ----->le probleme ici } }
merci
il faudrait que tu passes ta form en argument de ton thread par exemple :)
si tu veux, tu nous donnes ton cahier des charges, des sous, et on te fait tout le code gratos !!!
voilà mon code:
j'ai aussi une classe threadCode:
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Diagnostics; using System.Threading; namespace IMMATRICULATION { public partial class frmControle_d_accée : Form { public frmControle_d_accée() { InitializeComponent(); } public void lire_plaque() { if (RbDetectManuel.Checked == true) { File.Delete(path_image); if (StartProcesscurlmanual() == true) { test_curl = true; } } if (test_curl == false) { File.Delete(path_image); if (StartProcess() == true) { test_curl = true; } } if (File.Exists(path_image)) { Image1.Image = null; image2.Image = null; // textBox2.Text = ""; // FileStream photoStream = new FileStream(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + "bin\\current.jpg", FileMode.Open); // Image1.Image = Image.FromStream(photoStream); FileStream photoStream = new FileStream(path_image, FileMode.Open); Image1.Image = Image.FromStream(photoStream); photoStream.Close(); //Image1.Image =Image.FromFile(path_image); if (StartProcesslecture() == true) { if (File.Exists("bin\\save\\detecter\\_1.bmp")) { image2.Image = Image.FromFile("bin\\save\\detecter\\_1.bmp"); parametre = "-recognize -i" + "save\\detecter\\_1.bmp"; if (StartProcessOCR() == true) { LectureReseauNeaurone(); } else { File.Delete(path_image); test_thread.Abort(); test_thread.Join(); } } } } else { if (test_curl == false) { test_thread.Start(); } } }
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 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Diagnostics; using System.Threading; namespace IMMATRICULATION { class TTthread { public class EventThread { private readonly Thread eventThread; private bool stop = false; public EventThread() { eventThread = new Thread(eventThreadProc); eventThread.Name = "test_thread"; eventThread.Start(); } private void eventThreadProc() { while (!stop) { ici j'arrive pas à mettre la fonction lire_plaque() ??????????? } } } } }
Plusieurs choses...
Premier point, (qui n'est qu'un détails) je déconseille l'utilisation d'accent et de caractères un peu tordus dans les noms de méthode (d'ailleurs on écrit accès et pas accée)
Second point, non, ta classe thread n'a pas à être au courant de ta form. Ca serait une erreur de conception. à la place elle doit publier un évènement auquel ta form doit souscrire. Ce sont des notions très largement abordées dans les tutoriaux.