Bonjour,
Mon application doit lancer des traitements parallèles. Elle réalise donc une boucle qui lance à chaque tour la méthode "AddWork". Celle-ci doit lance un thread dans lequel le traitement est réalisé.
Lorsqu'un des traitements parallèles est terminé, un nouveau doit être lancé. J'ai donc besoin de tester le moment auquel le thread lancé se termine.
J'ai utilisé le code suivant. Il fonctionne mais je ne sais pas si c'est la meilleure solution. Qu'en pensez-vous ?
Je ne sais pas trop quel nom donner à mes méthodes.
La méthode "toto" permet de lancer le thread contenant le traitement à réaliser
La méthode "tata" appelle la méthode "toto" pour lancer le traitement et teste le moment auquel il se termine
Merci et bonne journée
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 public void AddWork(object work) { Thread toto = new Thread(new ThreadStart(this.tata)); toto.Start(); } public void tata() { Proto oProto = new Proto(this.toto); IAsyncResult iAr; iAr = oProto.BeginInvoke(null, null); while (!iAr.AsyncWaitHandle.WaitOne(100, false)) { //Console.WriteLine("Et alors ?"); } Console.WriteLine("Terminé"); } public void toto() { this.thread = new Thread(new ThreadStart(work.ProceedWork)); this.thread.Start(); this.thread.Join(); }
Partager