C# BackgroundWorker(run on uı thread) Kullanımı

using System.ComponentModel;
using System.Windows.Forms;

namespace backgroundWorker_Kullanım
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Thread.RunWorkerAsync();//BackgroundWorker(Thread)'ı RunWorkerAsync() fonksiyonu ile başlatırız.
        }
        int toplam;
        private void Thread_DoWork(object sender, DoWorkEventArgs e)
        {
            //Arka Planda çalışacak kodlarımız. Dikkat: 
            //Örneğin Veritabanından veri çekiyoruz
            //Çektiğimiz verileri burda Arayüz bulunan Componentlere(Listbox,Combobox,Datagridview vs) aktarmıyoruz
            //Çünkü o Componentlere mainThread' te eriştiği için Çapraz iş parçacığı hatası alırız
            //Bu yüzden verileri Array,DataTable,Hash dizilerine,değiskenlere vs atarız 
            //Örnek:
            for (int i = 0; i < 10; i++)
                toplam +=i;
        }

        private void Thread_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            //Thread_DoWork fonksiyonu çalışıp bittiğinde ardından bu fonksiyon çalışır
            //Burda ise Arayüz Componentlerine veriyi aktardığımız fonksiyondur
            //Örnek
            label.Text = toplam + "";
        }
    }
}

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir