dll thread synchronize callback metod problem.

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
ercan_elo_bil
Üye
Mesajlar: 26
Kayıt: 11 Tem 2014 11:13

dll thread synchronize callback metod problem.

Mesaj gönderen ercan_elo_bil »

merhaba,

DLL üzerinde TThread adlı classı kullanarak bir kütüphane hazırladım bu kütüphanede synchronize(funct) metodunu kullanarak, dll i kullanan programa callback fonksiyonu sağladım.

sorun synchronize(funct) cağırdığımda thread execute donmaktadır ve callback fonksiyonu calışmamaktadır, callback siz synchronize(funct) cok iyi çalışıyor.

bu konuda bir kaç araştırma yaptım sağlam çözümler bulamadım. sorun hakkında yardımcı olabilir misiniz?
Garbage Collector, Delphi çöp üretmez çöpü bulup temizlemeye asla gerek yoktur... :D
ssahinoglu
Üye
Mesajlar: 7
Kayıt: 05 Eki 2007 02:50

Re: dll thread synchronize callback metod problem.

Mesaj gönderen ssahinoglu »

Send/Post Message gibi apiler veya mutex/event'ler belki işe yarayabilir.
Yani işlem parçası thread'in dışına çıkmış oluyor.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: dll thread synchronize callback metod problem.

Mesaj gönderen SimaWB »

TThread.Synchronize yerine TThread.Queue deneyebilirsiniz. Malum; Synchronize işin bitmesi için beklerken Queue beklemez.
There's no place like 127.0.0.1
ercan_elo_bil
Üye
Mesajlar: 26
Kayıt: 11 Tem 2014 11:13

Re: dll thread synchronize callback metod problem.

Mesaj gönderen ercan_elo_bil »

queue callback oluşturmadan çıkıyor.
dll thread callback yapamadım malasef
postmessage metodu ile yaptım.
diğer taraftan
main uygulamadan thread oluşturup, dllden PostThreadMessage gönderip, PeekMessage ile yapılabilir belki.
Garbage Collector, Delphi çöp üretmez çöpü bulup temizlemeye asla gerek yoktur... :D
Cevapla