BackgroundWorker, programlamaya yeni başlayan çoğu programcının hatta uzun zamandır programlama ile uğraşmış kişilerin bile gözünden kaçabilen bu ufak nesne ne işe yarar ? çalışma mantığı nedir ? gibi bazı sorulara kendimce cevap vermeye çalışıcam ilk olarak adından da anlaşılacağı gibi bu nesne arkaplanda programın çalışmasını durdurmayacak şekilde bazı işlerin yapılmasını sağlar derleyiciler programı satır satır işlediklerinden bir işlem bitmeden diğerine geçiş yapılmaz buda işlem gerçekleşirken kullanıcının boş bir ekran görmesi veya işlem yapamadan beklemesi anlamına gelir ki buda bir çok kullanıcıyı sıkar. Örneğin internet üzerindeki bir serverdan tek tek verileri çekip ardından başka bir servera kayıt işlemi yapıyorsunuz.Bu işlem binlerce kayıt arasında saniyeler hatta dakikalarca bekletme yapar bu sırada kullanıcının bu işlemi iptal etme veya başla bir işlemden devam edebilme özgürlüğü sağlıyacak olan aracımız ise ” backgroundworker ” herneyse iyice uzatmayayım konuyu gelelim örnek kodlara …

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
backgroundWorker1.RunWorkerAsync();
// Yukarıdaki Kodu yazarak backgroundworker nesnemizi çalıştırıyoruz..
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
//Bu alana arka planda uygulamadan bağımsız çalışmasını istediğimiz kodları yazıyoruz...
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
// Bu alanda işlemin devamlılığı ile ilgili verileri progressbara gönderiyoruz örneğin serverdan gelen vernin nekadarının tamamlandığı..
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
//Bu alanda ise işlem tamamlandıktan sonra ne yapılacağı yazılacak örneğin yükleme bittikten sonra formu kapat veya kullanıcıya bir mesaj ver gibi seçenekler
}