Android Thread hakkında bir soru

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
beklentili
Üye
Mesajlar: 86
Kayıt: 21 Ara 2013 09:05
İletişim:

Android Thread hakkında bir soru

Mesaj gönderen beklentili »

Merhaba, aşağıdaki Thread yapısında bir problem veya eksik var mı? Bu konuda yardımlarınızı bekliyorum.

Bu yapıdan benim beklediğim, uygulamayı kasmadan ve dondurmadan kendisine verilen komutları yapmasıdır. Ancak 2. işlemden sonra uygulamayı kasıyor.


implementation
....
....
....

type
TProgressThread = class(TThread)
private
protected
procedure Execute; override;
end;
{ TTestThread }


procedure TProgressThread.Execute;
var
i: Integer;
Yeni_Katalog,Yeni_Katalog_Alt_Bar:TLayout;
Yeni_Katalog_Resim,Yeni_Katalog_Arka_Plan:TRectangle;
Yeni_Katalog_Duvar_Panel:TLayout;
Yeni_Katalog_Bilgi_Etiketi:TLabel;
Yeni_Katalog_Yukleme_Durumu:TAniIndicator;


begin
inherited;
try

DataModule2.UniQuery1.Close;
DataModule2.UniQuery1.SQL.Clear;
DataModule2.UniQuery1.SQL.Text := 'Select * from kataloglar';
DataModule2.UniQuery1.Open;

DataModule2.UniQuery1.First;

While not (DataModule2.UniQuery1.Eof) do
begin

///İŞLEMLER BAŞLANGIÇ
........
///İŞLEMLER BİTİŞ

DataModule2.UniQuery1.Next;
end;

DataModule2.UniQuery1.Close;


except
on E:Exception do
begin
Log.d('Hata: ' + E.message);
end;
end;

FreeOnTerminate := True;


end;
[/size]http://www.componentler.com | Türkçe component sitesi
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Android Thread hakkında bir soru

Mesaj gönderen thelvaci »

Aslında potansiyel olarak bir değil birden fazla sorun var gibi görünüyor. Her ne amaçla kullanıyor olursanız olun, bir veri kaynağına erişimi thread vasıtası ile sağlayacaksanız; ilgili thread içinde yeni bir connection kurmalısınız. Tabii, thread içinde kullanılan ilgili connection'ın aynı zaman diliminde bir başka yerdede kullanılmayacağını garanti ediyorsanız! o zaman gönül rahatlığı ile yeni bir connection kurmadan mevcut connection'ı kullanabilirsiniz.

İkinci olarak, bir thread içinden VCL yada FMX kütüphanelerine başvuruda bulunacaksanız, bunun da senkronizasyon mekanizmaları ile sarmalanıp güvenli hale getirilmesi yada en basiti Synchronize vasıtası ile ana thread içinde çalıştırılması gerekir.

Ayrıca kodunuzun bir kısmını burada paylaşmamışsınız, o sebeple genel bir yorum yazabiliyorum ancak. Sitemde işinize yarayabilecek bazı thread makaleleri var; dilim döndüğünce, bilgim dahilinde bir şeyler karalamıştım zamanında. Belki ilginizi çeker.
beklentili
Üye
Mesajlar: 86
Kayıt: 21 Ara 2013 09:05
İletişim:

Re: Android Thread hakkında bir soru

Mesaj gönderen beklentili »

Turgut hocam cevabınız için teşekkür ediyorum. Sitenizden bu konuyla ilgili yazılarınıza ulaştım, bu gece nasip olursa sizin yazılarınızı okuyup konuyu çözmeye çalışacağım. Saygılarımla
[/size]http://www.componentler.com | Türkçe component sitesi
Cevapla