Bonjour à tous,
je teste l'utilisation des threads, notamment, pour charger une grosse image de 20 Mo environ dans une sorte de TImage.
J'espérais en utilisant un thread ne plus avoir l'appli gelé pendant le LoadFromFile, mais ce n'est pas le cas.
Un thread dans ce cas de figure est - il intéressant ? étant donné que je ne fais appel qu'à une seule méthode (LoadFromFile) ?
ci dessous l'appel à partir de la form principale :
et du côté du thread :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute() then begin MonThreadLoadImage := ThreadLoadImage.Create(OpenDialog1.FileName); MonThreadLoadImage.Resume; end; end;
avec ceci malheureusement, pdt le temps du chargement, l'appli est toujours gelée ? est ce normal ?
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 constructor ThreadLoadImage.Create(AFileName: String); begin FreeOnTerminate := True; inherited Create(True); FileName :=AFileName; end; procedure ThreadLoadImage.Execute; begin { Placez le code du thread ici } Synchronize(LoadImage); end; procedure ThreadLoadImage.LoadImage; begin Form1.LEADImage1.Load(FileName,0,0,1); end;
Merci d'avance
Partager