Yorumları: 2.017
Konuları: 246
Kayıt Tarihi: 09-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 4.370 Uzman
Veya bir başka deyişle Thread içinde Thread,
Android tarafında arka planda belirli bir süre tekrarlanan veya arkaplanda başlayıp bitmesini istediğim bir kod var ise AsyncTask kullanıyorum,
Görsel Componetlere dokunmadığınız sürece ilgili işlem içerisinde top koşturulabiliyor, AsyncTask içerisinde onlarca yeni AsyncTask işlemi başlatabilmem mümkün.
Delphi tarafında bu konularda pek bilgim yok, Timer içerisinde thread oluşturduğumda uygulama saçmalamaya başlıyor : iz olsanız en kolay hangi yolu seçerdiniz.
Yorumları: 1.460
Konuları: 80
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 11.868 Üstad
Bir pencereye sahip olmayan uygulamalarda, TTimer kullanmak uygun değildir. Çünkü TTimer özellik olarak pencere'ye WM_TIMER mesajının gönderilmesi ve bunun işlenmesi yolu ile çalışır. Bunun yerine Timer gibi davranabilecek bir çok seçenek kullanılabilir. Örneğin CreateWaitableTimer ve SetWaitableTimer API'leri kullanılabilir. Ya da çok daha basit olarak, bir dummy thread oluşturursunuz bu thread sonlanmadığı müddetçe bir döngüye girer ve döngü içinde SleepEx ile alertable vaziyette istediğiniz interval'de bekler.
SleepEx ve alertable önemli tabii. Bu konular sizi QueueUserAPC'ye götürür. Bu hususlarla alakalı daha önce yazmıştım.
Thread'lerin saçmaladığı noktalar genelde senkronizasyona ihtiyaç olan noktalardır. Kısaca senkronizasyon, kaynakların efektif kullanılması için bir araçtır. Amiyane bir benzetme ile; bir tuvalette 4 kabin var ise, aynı anda sadece 4 kişi tuvalet ihtiyacını giderebilecek demektir. 5nci, 6ncı ... kişiler beklemek zorundadırlar. Ancak, senkronizasyona saygı gösterilmez ise; bu durumda 4 kabine 8 kişi de sığmaya çalışabilir. Elbette, bunun sonucu tahmin edilemez
Kısaca Thread'lerde saçmalık olarak tabir edilebilecek hususlar, bu tarz durumlara özen gösterilmediği için gerçekleşir. Bu nedenle, Critical Section, Mutex, Event, Semaphore ... gibi senkronizasyon nesneleri hakkında fikir sahibi olmak elbette çok faydalıdır.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
Yorumları: 2.017
Konuları: 246
Kayıt Tarihi: 09-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 4.370 Uzman
14-12-2017, Saat: 13:48
(Son Düzenleme: 14-12-2017, Saat: 13:50, Düzenleyen: TescilsizUzman.)
Zaman buldukça Threadlar üzerinde geziniyorum bakalım. ya batarız ya çıkarız :d
Yorumları: 1.460
Konuları: 80
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 11.868 Üstad
(14-12-2017, Saat: 13:48)yhackup Adlı Kullanıcıdan Alıntı: Zaman buldukça Threadlar üzerinde geziniyorum bakalım. ya batarız ya çıkarız :d
Bence çıkarsın
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
Yorumları: 2.017
Konuları: 246
Kayıt Tarihi: 09-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 4.370 Uzman
Abi normal VCL uygulamasında sorun yok Fakat Soap Servisi içerisinde kullanamıyorum.
Serviste Rasgtele her defasında farklı yerde bu hata dönüyor.
ReceiveHeader: Net packets out of order: received[48], expected[1]
Yanlış biliyorsam düzeltin, Soap servise her istek geldiğinde ilgili fonksiyon yeni bir thread olarak oluşuyor, Benim threadım bunu blokluyor ve bu sebepten paketler bozuluyor olabilir mi ?
Yorumları: 1.460
Konuları: 80
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 11.868 Üstad
(14-12-2017, Saat: 14:27)yhackup Adlı Kullanıcıdan Alıntı: Abi normal VCL uygulamasında sorun yok Fakat Soap Servisi içerisinde kullanamıyorum.
Serviste Rasgtele her defasında farklı yerde bu hata dönüyor.
ReceiveHeader: Net packets out of order: received[48], expected[1]
Yanlış biliyorsam düzeltin, Soap servise her istek geldiğinde ilgili fonksiyon yeni bir thread olarak oluşuyor, Benim threadım bunu blokluyor ve bu sebepten paketler bozuluyor olabilir mi ?
Birden fazla thread'in olduğu ve bu thread'lerin ulaşabilecekleri uzaklıkta enfes bir sofra olduğu müddetçe; her şey mümkündür. Sofra bir tane, sandalye bir tane; aç thread birden fazla
Kodun tamamını görmeden kesin bir şey söylemek zor.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
Yorumları: 567
Konuları: 15
Kayıt Tarihi: 24-03-2017
Rep Puanı: 3.380 Uzman
14-12-2017, Saat: 17:13
(Son Düzenleme: 14-12-2017, Saat: 17:22, Düzenleyen: TescilsizUzman.)
(14-12-2017, Saat: 13:29)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Thread'lerin saçmaladığı noktalar genelde senkronizasyona ihtiyaç olan noktalardır. Kısaca senkronizasyon, kaynakların efektif kullanılması için bir araçtır. Amiyane bir benzetme ile; bir tuvalette 4 kabin var ise, aynı anda sadece 4 kişi tuvalet ihtiyacını giderebilecek demektir. 5nci, 6ncı ... kişiler beklemek zorundadırlar. Ancak, senkronizasyona saygı gösterilmez ise; bu durumda 4 kabine 8 kişi de sığmaya çalışabilir. Elbette, bunun sonucu tahmin edilemez
Bu benzetmeyi okuyunca gözümden yaş geldi
XXXXlıların tuvalet sistemi kullanılırsa problem çıkma ihtimali hayli azalır
Yorumları: 1.460
Konuları: 80
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 11.868 Üstad
Yorumları: 2.017
Konuları: 246
Kayıt Tarihi: 09-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 4.370 Uzman
(14-12-2017, Saat: 14:27)yhackup Adlı Kullanıcıdan Alıntı: Abi normal VCL uygulamasında sorun yok Fakat Soap Servisi içerisinde kullanamıyorum.
Serviste Rasgtele her defasında farklı yerde bu hata dönüyor.
ReceiveHeader: Net packets out of order: received[48], expected[1]
Yanlış biliyorsam düzeltin, Soap servise her istek geldiğinde ilgili fonksiyon yeni bir thread olarak oluşuyor, Benim threadım bunu blokluyor ve bu sebepten paketler bozuluyor olabilir mi ?
Aylar sonra kendi yaptığım hatayı farkettim
Yukarıdaki hatanın nedeni Thread içerisinden rodoslama vcl komponetine daldığım için , o zamanlar Queue bilmiyor muşuz
Yorumları: 1.460
Konuları: 80
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 11.868 Üstad
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
|