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?
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 : 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
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 frm1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 thread
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
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 : 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
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager