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());
}