C# Backgroundworker Kontrolü

C# pek kullanılmayan ancak kullanışlı bir yapı...

Merhaba Arkadaşlar,

C#'da pek bilinmeyen ve kullanılmayan bir yapıyı göreceğiz bu derste.Öncelikle BackgroundWorker'ın ne işe yaradığını kısaca anlatayım.

Aslında çalışma mantığı thread gibi.Siz formunuzda başka bir işle uğraşırken, aynı anda arka planda başka bir işin yürütülmesini bu yapı ile sağlayabilirsiniz.

Ben bu örnekte bir for döngüsü döndüreceğim ve bittiğinde bir uyarı mesajı vereceğim.Bu sizin projenizin büyüklüğüne ve amacına göre değişen bir durum tabi.Mesela benim aklıma kullanım alanı olarak ilk gelen.Veritabanından çok büyük data çektiğiniz zamanlarda,kullanıcı formda başka işlerle uğraşırken bir yandan veriler çekilebilir.Ne zaman veriler çekildi,kullanıcıya uyarı verilerek artık verileri kullanabileceği söylenebilir.Bunu geliştirmek size kalmış tabiki.Neyse ben örneğime geçeyim hemen...

Öncelikle sayfaya bir backgroundworker nesnesi atalım.(Not : Bu nesneyi Runtime'da da yapabiliriz.)


backgroundWorker1.RunWorkerAsync()



Yukardaki kodumuzla BW'ın çalışmasını başlatmış olduk.Bunu Page_Load'a yazabileceğimiz gibi herhangi bir butonun click'inde ve ya istediğimiz bir yerde kullanabiliriz.

Şimdi gelelim esas Olaya ki BW çalışmaya başladığında yapılacak iş/işlemleri belirtmek bu.


private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)

        {

            int i = 0;

            while (i<100000000)

            {

                i++;

            }

        }



Ben sadece belli bir sayıyın sayımını gerçekleştirdim.Dediğim gibi amaca göre şekillendirebilirsiniz bu fonksiyonun içeriğini.Ayrıca bu ve aşağıda yazacağım fonksiyonu BW'nin Properties kısmının olaylarından görebilirsiniz.


private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)

        {

            MessageBox.Show("Sayma işlemi tamamlandı...","Bilgilendirme[!]");

        }



Yukardaki fonksiyon adından da anlaşılacağı üzere BW'nin çalışması tamamlandığında çalışmasını istediğimiz kodları içeriyor.

Bu yapı ile ilgili benden bu kadar,gerisi sizin yapacaklarınıza kalmış...

İyi çalışmalar...
  • Etiketler;
Murat Karakoyun
İstanbul Üniversitesi Bilgisayar Mühendisliği bölümü mezunu. Şu anda özel bir firmanın Bilgi İşlem ve Yazılım Geliştirme departmanında çalışıyor. Asp.Net (CSharp), MsSQL, HTML, CSS, Photoshop biliyor.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

çok teşekkürler...
[b]güzel olmş...[/b]

Yukarı Git