mpurvis adlı üyeden alıntı: mesajı görüntüle
BackgroundWorker nesnesi ile kolayca yapabilirsiniz. Visual Studio Toolbox içindeki components kısmında BackgroundWorker nesnesini alıp forma sürükleyin.
daha sonra global bir değişken tanımlayın :

bool isStop=false;

daha sonra durdurma butonunun click eventine şu şekilde bir kod ekleyin :

private void btnDurdur_Click(object sender, EventArgs e)
{
// meşgül değilse gerek yok işleme pas geçiyoruz
if (!backgroundWorker1.IsBusy)
{
return;
}

Button btn= sender as Button;
btn.Enable=false;
isStop=true;
}

daha sonra DoWork methodu içine şu şekilde bir kontrol yerleştirin :

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
// sizin döngünüzün başına böyle bir if yerleştirin.
while(true)
{
if (isStop)
{
break;
}
// uzun kodların çalıştığı blok
}
}

daha sonra RunWorkerCompleted methodu içinde durdurma butonunu ve global değişkeni restore edin

private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
isStop=false;
btndurdur.Enable=true;
}
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.