Çok Yakında Yeni Bir Arayüzle karşınızdayız! http://yeni.delphican.com/

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:
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. 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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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
  Resim Yükleme SimaWB 15 2.810 16-11-2019, Saat: 08:25
Son Yorum: Bay_Y
Photo Database'e Resim Yükleme (Base64toİmage) hakanharbeli 8 1.993 16-11-2019, Saat: 08:21
Son Yorum: Bay_Y
  ListView - CheckBox Kullanmak Fesih ARSLAN 17 3.759 16-11-2019, Saat: 08:15
Son Yorum: Bay_Y
  Bileşen İçinde Veri Saklama SimaWB 9 1.121 02-11-2018, Saat: 18:54
Son Yorum: uparlayan
  ListView - DynamicAppearance Fesih ARSLAN 9 3.421 21-10-2018, Saat: 16:20
Son Yorum: klavye



Konuyu Okuyanlar: 1 Ziyaretçi