Bonjour a tous,
Je débute dans les threads et j'avoue que je tourne pas mal en rond face a mon problème.
La problématique est la suivante :
Je dois lire un fichier contenant des centaines de milliers de lignes et pour chacune de ces ligne je dois faire appel à un web service.
Seulement je n'arrive pas à mettre en place cette logique.
Je pensais faire quelque chose comme cela :
-Ouvrir un streamReader
-Créer les threads
-faire une boucle avec readLine pour parcourir le fichier
-et pour chaque ligne regarder si un thread est libre
si oui alors je lui passe la ligne et il va attaquer le webservice et je récupère le retour puis libère le thread
si non attendre qu'un thread se libère et dès qu'un se libère passer une nouvelle ligne.
Pensez vous que cette logique soit bonne?
Et pourriez vous m'orienter dans ce développement?
Pour l'instant j'essaye d'avancer en utilisant ces éléments la mais ca ne donne rien
Merci d'avance
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 //Création des thread int number = 10; Thread[] threads = new Thread[number]; //Création des appel web services static wsaiWebServLocal.WSAI[] clients = new wsaiWebServLocal.WSAI[number]; //lancement // je ne vois pas comment passer la ligne a ThreadJob for (int i = 0; i < number; i++) { clients[i] = new wsaiWebServLocal.WSAI(); ParameterizedThreadStart starter = new ParameterizedThreadStart(ThreadJob); threads[i] = new Thread(starter); } for (int i = 0; i < number; i++) { threads[i].Start(i); } for (int i = 0; i < number; i++) { threads[i].Join(); } //le job static void ThreadJob(object index) { clients[(int)index].AiNor("demo", "demo", "1", "test") }
Partager