Bonjour.
Dans ce topic, j'ai eu à gérer un petit problème en effectuant deux boucles espacées d'une minute. Mais voilà, l’exécution du programme est relativement longue.
Afin de résoudre cela, on m'avait proposé d'utiliser deux Threads de façon à commencer la première boucle, laisser tourner ça une minute et pour finir, lancer la deuxième boucle.
Je me suis un peu documenté et je me suis rendu compte qu'il existe maintenant des Tasks bien plus efficaces et facile à mettre en place (Parallel.ForEach par exemple). Cependant je ne sais pas comment faire en sorte que la deuxième boucle se lance au bout d'une minute.
Enfin, je vais devoir accéder à une même collection (ArrayList) avec les deux boucles. L'une ajoutant des objets dedans, l'autre faisant un traitement sur chaque objet.
Je n'ai pas vraiment encore fait de code mais on obtiendrait un truc du genre :
uneMethode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Parallel.ForEach(liste1, objet1 => { //Traitement sur objet1 //Création d'un objet2 //Ajout de l'objet2 dans liste 2 }); //Au bout de 60000 ms, on lance une task Task maTache = Task.Factory.StartNew(uneMethode);
Bon, y'a sans doute des fautes, des imprécisions et toussa, et pour cause : c'est encore très flou.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 foreach(Object objet2 in liste2) { //traitement sur objet2 }
Quelqu'un à une piste à me donner? Une fonction à me proposer? Des corrections à effectuer?
Merci !
Partager