Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
AnonymousThread ile ListView'e Veri Yükleme
#1
Aslında çok makale değil yazacaklarım sadece bir örnek. Makale yazacak kadar bilgim olmadığı için öğrendiğim farklı metodları da paylaşmak istediğimden dolayı örnek yapabiliyorum sadece.

TAnonymousThread normal Thread sınıfından türemiş bir class. Normal Thread 'den hiçbir farkı yok. Örnekte veri üretip bu verileri listview'e ekliyorum. Ekleme işlemini Thread sınıfının CreateAnonymousThread class metodu ile yapıyorum böylece uygulama da bekleme donma olmuyor.  Görsel bir yükleme söz konusu olduğu için haliyle yavaş yükleniyor.

Kullanımı:
1. Öncelikle bir Thread değişkeni tanımlıyoruz.
  AnonThread: TThread;

2. Bunu Thread Sınıfının Class fonsiyonu CreateAnonymousThread ile oluşturup yaptırmak istediğimiz işlemi içine yazıyoruz.

  AnonThread := TThread.
   CreateAnonymousThread(
     procedure
     begin

     end);
 AnonThread.Start;

Örnek Görüntüsü:

gqV8jL.gif

Kaynak Kod:
Buradan indirebilirsiniz | Yandex Disk
WWW
Cevapla
#2
Elinize sağlık, lakin kodunuzda bir kaç sıkıntı mevcut. Birincisi, Thread kodunuzda VCL nesnelerine direkt erişim sağlamışsınız. Bu uygun değildir. İkincisi, TerminateThread çağrımı. TerminateThread bir thread'in sonlandırılması için kullanılması gereken en son seçenektir. Hiç bir yol kalmadı ise kullanılır. Ayrıca, anonim bir thread FreeOnTerminate olarak ayarlandı ise, bu durumda zaten terminate olmuş bir thread'i durdurmaya çalışıyor olabilirsiniz. Üçüncü ve son olarak, Thread'ler de mümkün mertebe Suspend/Resume kullanılması önerilmez.(Zaten bu metodlar deprecated olarak işaretlenmişlerdir)
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#3
Teşekkür ederim yanlışları söylediğiniz için Tuğrul bey. Böylece inceleyen arkadaşlar da benim düştüğüm hatalara düşmezler. Bu örneği inceleyenler, hem böyle bir şeyin olabileceğini öğrenirken hemde nasıl kötü kod yazılır öğrenmiş olacaklar. Her açıdan faydalı oldu bence Smile
WWW
Cevapla
#4
(15-03-2017, Saat: 00:38)witalihakko Adlı Kullanıcıdan Alıntı: Teşekkür ederim yanlışları söylediğiniz için Tuğrul bey. Böylece inceleyen arkadaşlar da benim düştüğüm hatalara düşmezler. Bu örneği inceleyenler, hem böyle bir şeyin olabileceğini öğrenirken hemde nasıl kötü kod yazılır öğrenmiş olacaklar. Her açıdan faydalı oldu bence Smile

Estağfirullah kötü kod demeyelim, dikkat edilmesi gereken hususlara dikkat çekmeye çalışıyoruz diyelim. Wink
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#5
Teşekkürler, thread hakkında da bir kaç bilgi sahibi olduk. Sağolun
Cevapla
#6
(13-03-2017, Saat: 15:57)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Elinize sağlık, lakin kodunuzda bir kaç sıkıntı mevcut. Birincisi, Thread kodunuzda VCL nesnelerine direkt erişim sağlamışsınız. Bu uygun değildir. İkincisi, TerminateThread çağrımı. TerminateThread bir thread'in sonlandırılması için kullanılması gereken en son seçenektir. Hiç bir yol kalmadı ise kullanılır. Ayrıca, anonim bir thread FreeOnTerminate olarak ayarlandı ise, bu durumda zaten terminate olmuş bir thread'i durdurmaya çalışıyor olabilirsiniz. Üçüncü ve son olarak, Thread'ler de mümkün mertebe Suspend/Resume kullanılması önerilmez.(Zaten bu metodlar deprecated olarak işaretlenmişlerdir)

Peki listview  dbgrig dibi nesnelere veri (dataset) yüklenirken  donma olmaması için ne yapmamız gerek..
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Photo Database'e Resim Yükleme (Base64toİmage) hakanharbeli 11 12.114 19-03-2024, Saat: 09:47
Son Yorum: mrmarman
  ListView - CheckBox Kullanmak TescilsizUzman 18 17.373 11-04-2023, Saat: 11:54
Son Yorum: sunbeki
  Microsoft Windows Mağaza Store (.appx / Metro / UWP) uygulama yükleme adımları emozgun 3 2.676 27-07-2020, Saat: 09:55
Son Yorum: nguzeller
  Resim Yükleme SimaWB 15 12.783 16-11-2019, Saat: 08:25
Son Yorum: Bay_Y
  Bileşen İçinde Veri Saklama SimaWB 9 6.198 02-11-2018, Saat: 18:54
Son Yorum: uparlayan



Konuyu Okuyanlar: 1 Ziyaretçi