Bonjour à tous,
Je vais avoir besoin de vos lumières au sujet de la création d'une application multithread.
Alors voilà : j'ai une application qui, via des proxies contenu dans le Memo1, va se connecter à mon site et tenter de récupérer une info. Si l'info récupérée est correcte, alors l'application ajoute le proxy utilisé au Memo2.
L'application fonctionne très bien dans son état actuel, mais le processus est extrêmement long car l'application gère un proxy par un proxy.
Donc je me suis dit que ce serait une bonne idée de créer une application multithread qui va gérer par exemple 20 proxies par 20 proxies.
Le problème que j'ai vient vraiment de la gestion de ces threads et non du processus de travail des proxies.
J'ai déjà créer des applications avec un thread (basique), mais jamais de multithread...
Voici mon code actuel (allégé) :
Dans l’idéal je souhaiterais gérer le nombre de Threads maximum dans un TSpinEdit (ça me semble fastoche).
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 procedure TCheck.Execute; var s, resp, ip, port : string; i, j : integer; HTTP: TIdHTTP; begin checked := 0; HTTP := TIdHTTP.Create(nil); for j := 0 to Form1.Memo1.Lines.Count-1 do begin if Form1.CheckBox1.Checked = True then begin HTTP.Free; Exit; end; s := Form1.Memo1.Lines[j]; i := Pos(':', s); ip := Copy(s, 1, i-1); port := Copy(s, i+1, Length(s)); try HTTP.ProxyParams.ProxyServer := ip; HTTP.ProxyParams.ProxyPort := StrToInt(port); HTTP.ReadTimeout := 30000; resp := HTTP.Get('http://www.monsite.com'); if resp <> 'Valide' then Form1.Memo2.Lines.Add(ip+':'+port); except end; checked := checked+1; if (checked = Form1.Memo1.Lines.Count) then begin HTTP.Free; Exit; end; end; HTTP.Free; end;
Aussi j'ai peur que les threads se mélangent entre eux et qu'un thread ne retente l'opération avec un proxy déjà testé ou en cours de teste...
Enfin, j'imagine que tout ça est bien géré par Delphi ; on est en 2011 quand même !
Merci par avance aux réponses et aux pistes !
Beny
Partager