Et où est-elle remplie ?
Dans le constructeur, car il ressemble à ça :
et le type TTableau est déclaré dans une autre Unité.
Code : Sélectionner tout - Visualiser dans une fenêtre à part constructor Create(uneListe:ttableau);
Tu ne reseterais pas ton tableau directement après ThreadFlux.Create() par hasard ?
Voilà précisemment ce que je fait
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 constructor tThreadflux.Create(uneListe: ttableau); var i:integer; begin inherited Create(false); setlength(lst.t,length(uneliste.t)); //initialisation des variables for i := 0 to length(uneliste.t) - 1 do begin Lst.t[i]:=uneListe.t[i]; end; Priority := tpNormal; end; procedure TThreadFlux.Execute; begin for i := 0 to length(Lst.t) - 1 do begin monurl:=Lst.t[i]; with TIdHTTP.Create(nil) do try monurl:=Lst.t[i]; source := Get(monurl); finally Free; end; TraitementFlux(source); end; end;
Quel est l'intérêt d'utiliser un thread alors que tu vas traiter séquentiellement tes url ?
Autant le faire directement dans un code simple non ?
Parce qu'en fait je souhaite créé un service qui se lance tous les jours à une heure donnée (dans un fichier de config).
La question était sur: après l'instantiation du thread et non pas son constructeur .
Maintenant, essaye de remplacer cette ligne:
par:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Lst.t[i]:=uneListe.t[i];
SetString va effectivement copier la chaîne et non pas seulement son pointer .
Code : Sélectionner tout - Visualiser dans une fenêtre à part SetString(Lst.t[i], PChar(uneListe.t[i]), Length(uneListe.t[i]));
ps: Mais comme dit Rayek, le principe est peut-être discutable.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager