bonjour
je dois afficher dans des Timages des images récupérées sur un serveur d'après des paramètres bien précis (qui changent)
pour éviter que le programme lag, j'ai du passer par un thread
je ne suis pas un pro dans ce domaine, je me suis inspirer d'une source et devant inter agir avec la VCL j'ai du procéder ainsi :
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 Trecuperation_image = class(TThread) private { Private declarations } protected procedure GetResult; procedure Execute; override; end; var NewThread : Trecuperation_image; procedure Trecuperation_image.GetResult; begin // mon code qui consiste à récupérer les images sur internet, et les afficher dans des Timages, ect ... end; procedure Trecuperation_image.Execute; begin Synchronize(GetResult); end;
et pour lancer le téléchargement des images je lance le thread ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure TForm1.Button1Click(Sender: TObject); begin NewThread := Trecuperation_image.Create(False); end;
tout fonctionne bien ... à chaque fois que je souhaite télécharger d'autres images, il suffit de cliquer sur le bouton encore et encore ...
ce que je me demandais c'est ce que je ne devrais pas tuer / arrêter le thread une fois le travail effectuer ? car à chaque fois que je clique sur le bouton, j'ouvre un nouveau thread non ? à la longue le programme ne risque pas d'utiliser un peu trop de ram ?
merci d'avance pour votre analyse
Partager