Остановка фонового работника

Мое приложение использует фоновый рабочий, чтобы сделать некоторую работу внутри цикла. У меня это так, что на каждой итерации цикла, он проверяет, если ожидание отмены истина, и если это так, прерывает цикл. Все в порядке, мое приложение останавливает обработку после завершения текущей итерации цикла. Проблема в том, что я думаю, что фоновый работник все еще работает - если я нажимаю кнопку, чтобы начать обработку снова, я получаю сообщение об ошибке, говорящее, что фоновый работник занят.

Я собирался избавиться от работника, но затем он создается при запуске формы, и поэтому, если я избавлюсь от него, он не сможет начать работу снова. Что я действительно хочу сделать, так это сообщить фоновому работнику, что он завершен, если я нажму кнопку «остановить обработку», чтобы он был готов снова начать обработку, когда я нажму кнопку «Пуск»!

Я собирался попробовать это:

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) 
{ 
    while (!backgroundWorker1.CancellationPending) 
    {
        // Start processing in a background thread so the GUI remains responsive,
        // pass in the name of the text file produced by 
        // PFDR FilenameLogic(txtLetterType.Text); 
    } 
}

Ответы на вопрос(4)

Ваш ответ на вопрос