Bonjour,
Je vous expose mon problème:
Je possède une liste d'id de personne (la liste peut être très grande). Je fait un foreach sur cette liste, et pour chaque id, j'appel un webservice qui me renvoi des données sur l'id de la personne.
Exemple:
Le problème, c'est que ce traitement prend énormément de temps, j'aimerais l'optimiser en utiliser les threads.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 foreach (long pid in HashSet_Players_Id) { // Le webservice est "AccessGsm.get_Player_Career", j'inserere son résultat dans une liste List_Persons.Add(AccessGsm.get_Player_Career(listPersonLong[0], gsmService, user, password)[0]); // Je fait le taraitement "processCareers" pour une tranche de 250 entrée dans la liste if (List_Persons.Count % 250 == 0 || List_Persons.Count == HashSet_Players_Id.Count) { retour = processCareers(List_Persons); List_Persons.Clear(); } }
J'aimerais en gros faire l'appel à mon webservice dans un thread (car c'est le webservice qui prend du temps), mais le problème c'est que le programme continue à s’exécuter, et le foreach est quitté sans être entré dans "if (List_Persons.Count % 250 == 0)" car la liste List_Persons est vide (étant donné que les threads ne sont pas finis).
Pouvez vous m'aider sur la manière de mettre en place le ou les threads pour ce cas de figure?
Merci pour votre aide.
Partager