Thread ve memory kullanımı hakkında
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Tamam ama download bittikten sonra memory'nin eski haline gelmesi gerekmez mi? Ben de gelmiyor.Hakan Can yazdı:Aslında sorun yok. Sorun olarak algıladığın şey şu:
TDownLoadURL'yi kullandığın anda program otomatik olarak bir DLL'i yüklüyor (UrlMonLib adında). O yüzden hafıza birden artıyor.
"ExtActns" unit'ini incelersen orada göreceksin.
İyi çalışmalar.
CUma'dan sonra @gkimirti'nin tavsiye ettiği fonksiyonu deneyeceğim. Hayırlısı inşallah...
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned

Ez cüdâyîhâ şikâyet mîküned

-
- Üye
- Mesajlar: 380
- Kayıt: 31 Eki 2005 03:26
Merhaba,
4 Adet TImage nesnesi var
diyerek her bir image için 1 kere thread'i create ediyorum.
Thread ise şöyle:
4 Adet TImage nesnesi var
Kod: Tümünü seç
thrImgDownload.Create('http://www.meteor.gov.tr/2003/iller/set7/kayseris.aspx', 'd:\tmps.gif', Image1);
thrImgDownload.Create('http://www.meteor.gov.tr/2003/iller/set7/kayseri1.aspx', 'd:\tmp1.gif', Image2);
thrImgDownload.Create('http://www.meteor.gov.tr/2003/iller/set7/kayseri2.aspx', 'd:\tmp2.gif', Image3);
thrImgDownload.Create('http://www.meteor.gov.tr/2003/iller/set7/kayseri3.aspx', 'd:\tmp3.gif', Image4);
Thread ise şöyle:
Kod: Tümünü seç
constructor thrImgDownload.create(url, ldosya: string; img: Timage);
begin
inherited create(True);
FreeOnTerminate := True;
thrurl := url;
thrldosya := ldosya;
thrImg := img;
Priority := tpLowest;
resume;
end;
procedure thrImgDownload.Execute;
var
Dosya: TFileStream;
httpclient: Tidhttp;
begin
try
dosya := TFileStream.create(thrldosya, fmCreate);
try
httpclient := TIdHTTP.Create(nil);
try
httpclient.ReadTimeout:=5000;
httpclient.Get(thrurl, dosya);
finally
httpclient.Free;
end;
finally
dosya.Free;
end;
Synchronize(ImajYukle);
except
// Event handler konulabilir. Misal Synchronize(DoException);
end;
end;
procedure thrImgDownload.ImajYukle;
begin
thrImg.Picture.LoadFromFile(thrldosya);
DeleteFile(thrldosya);
end;
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned

Ez cüdâyîhâ şikâyet mîküned

Artış devam ediyorsa normal değil. Başının ağrımaması için, artış hala varsa, durmuyorsa kontrol etmeni tavsiye ederim.hdayi yazdı:Programın kullandığı ram hala artıyor ama aşır değil. 24 saatte 4 mb gibi bi artış oldu. Sanırım buna da normal dememiz gerekiyor.
Programın bu bölümünün leak yaptığından emin misin? Sadece bu bölümü ayrı bir uygulama olarak çalıştırıp deneyebilir misin? Belki gözden kaçırdığın başka bir yerde sorun vardır.