trigger içinden button1.click tetikleyecek fakat işlemi beklemeyecek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ugorkem
Üye
Mesajlar: 8
Kayıt: 17 Şub 2016 09:09

trigger içinden button1.click tetikleyecek fakat işlemi beklemeyecek

Mesaj gönderen ugorkem »

mevcut yazılmış bir program var ve onda güncelleme yapmam gerekiyor.
trigger içinden Button1.Click; çalıştırılacak fakat click tetikledikten sonra onclick procedure işlemlerinin bitmesini beklemeden trigger in sıradaki işlemlere devam etmesi gerekiyor.

diğer bir deyişle çalıştır devamet .

procedure trigger
begin
Button1.Click;

//button işlemi sürerken yapılması gereken diğer islemler
...
...
...


end;


bu konuda yardımcı olabileceklere şimdiden teşekkürlerimi sunuyorum.
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: trigger içinden button1.click tetikleyecek fakat işlemi beklemeyecek

Mesaj gönderen ikra »

Bunun icin multithread calisman gerekir. Bir threadpool olusturup, job eklemesi yapmalisin.
Ancak o zaman paralel prosedür tetiklemesi yapabilirsin.
Click ve akabinde yapilacak islemler ayni global degiskenleri kullanacak olurlarsa, problem cikacaktir. Bu durumda sectionlar ile lock etmen gerekecek.
kıdemsiz üye
ugorkem
Üye
Mesajlar: 8
Kayıt: 17 Şub 2016 09:09

Re: trigger içinden button1.click tetikleyecek fakat işlemi beklemeyecek

Mesaj gönderen ugorkem »

teşekkürler üstadım.
yalnız thread işlem bittiğinde aynı ana thread çağrılıyor. recursive bir fonksiyona gönüşüyor. bu durumda da hatalar alıyorum.
ikra
Üye
Mesajlar: 900
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: trigger içinden button1.click tetikleyecek fakat işlemi beklemeyecek

Mesaj gönderen ikra »

Zaten isin mantigi bu.
Sen paralel olarak islem yapmak istiyorsun. Ekledigin job‘un süresi threadin cagirildigi prosedürün devamindaki islemi baglamaz.
Aksi takdirde waitfor kullanman gerekir, bu da thread bitmeden prosedürün devamindaki kodlari execute etmez.
Bu durum senin yapmak istedigin paralel isleme aykiri.
Birinci ve ikinci islem olarak ikiye ayirip, mainden bagimsiz iki ayri thread kullanabilirsin.
Ikinci birinciyi beklemeliyse, ikincinin isleminin basinda waitfor kullanirsin. Bu sayede mainthreadi farkli islemler icin kullanabilirsin.
Tam olarak ne yapmak istedigini yazarsan, belki bir cözüm üretilebilinir.
kıdemsiz üye
Cevapla