Остановка фонового работника
Мое приложение использует фоновый рабочий, чтобы сделать некоторую работу внутри цикла. У меня это так, что на каждой итерации цикла, он проверяет, если ожидание отмены истина, и если это так, прерывает цикл. Все в порядке, мое приложение останавливает обработку после завершения текущей итерации цикла. Проблема в том, что я думаю, что фоновый работник все еще работает - если я нажимаю кнопку, чтобы начать обработку снова, я получаю сообщение об ошибке, говорящее, что фоновый работник занят.
Я собирался избавиться от работника, но затем он создается при запуске формы, и поэтому, если я избавлюсь от него, он не сможет начать работу снова. Что я действительно хочу сделать, так это сообщить фоновому работнику, что он завершен, если я нажму кнопку «остановить обработку», чтобы он был готов снова начать обработку, когда я нажму кнопку «Пуск»!
Я собирался попробовать это:
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);
}
}