mustafadgr adlı üyeden alıntı: mesajı görüntüle
Teşekkür ederim. BackGroundWorker bakmıştım. Yapısını ters bulduğum için fazla girmemiştim o konuya. Dediğinizi deneyeceğim, tekrardan teşekkür ederim.
rica ederim bgworker windows form için tasarlandığından gönül rahatlığıyla kullanabilirsiniz. aynı işlemi Task sınıfı ile de yapabilirsiniz. küçük bir senkronizasyon eklemesi ile. işte örnek :
        bool isStop = false;
        private void btnDurdur_Click(object sender, EventArgs e)
        {
            btnDurdur.Enable = false;
            btnDurdur.Text = "Bekleyiniz ...";
            isStop = true;
        }
      
        private void arkaPlan()
        {
            Task task = Task.Factory.StartNew(() =>
            {
                // while ya da for sizin döngünüz
                while (true)
                {
                    if (isStop)
                    {
                        break;
                    }

                    // burda yapılan her işlemden sonra yine  if (isStop) kontrolü edilebilir.
                    // amaç her işlemden sonra mutlaka isStop u kontrol etmek.
                    // zira burdaki işlem bitmeden isStop kontrol edilmeyeceği için durdurma işlemi işin bitişine göre değişkenlik gösterecektir.
                }
            }).ContinueWith((t) =>
            {
                // burası UI güvenli bölge yani ana uygulama thread bölgesi.
                btnDurdur.Enable = true;
                btnDurdur.Text = "DURDUR";
                isStop = false;
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }