merhabalar
kısaca ...
query 20 kayıt getiriyor.ben bu kayıtları 5er şekilde 4 thread' a dağıtarak,4 te bir zamanda bitirmek istiyorum
dağıtma kısmı sorun yok,thread clonlama gibi birşeye itiyacım var 4 thread ta da aynı kodlar olacak onlara gönderdiğim kayıtları işleyecekler
fikri olan ?
thread clone
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- bulutsuzluk_35
- Üye
- Mesajlar: 124
- Kayıt: 06 Eki 2007 04:14
- Konum: İzmir-Ankara-İstanbul-Antalya
- İletişim:
thread clone
Kod: Tümünü seç
try
try
inc(Bilgi);
except
sabir;
end;
finally
inc(Mutluluk);
end;
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
Re: thread clone
Kod: Tümünü seç
Class TMyThread = TThread
...
...
end;
var
Thread1,Thread2,Thread3,Thread4:TMyThread;
begin
Thread1:=TMyThread.Create;
Thread2:=TMyThread.Create;
Thread3:=TMyThread.Create;
Thread4:=TMyThread.Create;
Thread1.Dataset:=myDataset;
Thread2.Dataset:=myDataset;
Thread3.Dataset:=myDataset;
Thread4.Dataset:=myDataset;
Thread1.Resume;
Thread2.Resume;
Thread3.Resume;
Thread4.Resume;
- bulutsuzluk_35
- Üye
- Mesajlar: 124
- Kayıt: 06 Eki 2007 04:14
- Konum: İzmir-Ankara-İstanbul-Antalya
- İletişim:
Re: thread clone
burada birde şu var thread sayısı dinamik olacak yani kullanıcı 15 derse 15 thread oluşacak ben
new (mythreadvariable) gibi birşey yaptım ama olmadı.yani baştan thread1, thread1 :Tmythread gibi bir şansım yok çünkü dinamik olacak.Bu konuda da yardımcı olabilirseniz konu tadından yenmeyecek
new (mythreadvariable) gibi birşey yaptım ama olmadı.yani baştan thread1, thread1 :Tmythread gibi bir şansım yok çünkü dinamik olacak.Bu konuda da yardımcı olabilirseniz konu tadından yenmeyecek

Kod: Tümünü seç
try
try
inc(Bilgi);
except
sabir;
end;
finally
inc(Mutluluk);
end;
Re: thread clone
Sadettin Beyin yazdığı gibi istediğiniz sayıda Thread oluştururken Thread'lerin OnTerminate olayını tek bir procedure ile kontrol edin. O procedure içerisinde de Thread sayınızı azaltabilirsiniz. Örnek;
Kod: Tümünü seç
ThreadsCount := 3;
with TYourThread.Create(....) do
OnTerminate = ThreadTerminate;
with TYourThread.Create(....) do
OnTerminate = ThreadTerminate;
with TYourThread.Create(....) do
OnTerminate = ThreadTerminate;
procedure TForm1.ThreadTerminate(Sender: TObject);
begin
Dec(ThreadsCount);
if ThreadsCount= 0 then
//Tüm threadler işlemlerini bitirdi
end;
There's no place like 127.0.0.1
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
Re: thread clone
threadlerin freeontermiante ozelligi mevcut. thread islemi bitirdiginde kendi kendini yok edebiliyor.bulutsuzluk_35 yazdı:burada birde şu var thread sayısı dinamik olacak yani kullanıcı 15 derse 15 thread oluşacak ben
new (mythreadvariable) gibi birşey yaptım ama olmadı.yani baştan thread1, thread1 :Tmythread gibi bir şansım yok çünkü dinamik olacak.Bu konuda da yardımcı olabilirseniz konu tadından yenmeyecek
dongu seklinde thredleri olusturup kosturabilirsiniz ya da SimaWB' in dedigi gibi OnTerminate olayina bir metod baglayip bu islemi elle de yapabilirsiniz.