, Это можно сделать в конструкторе.

я есть вопрос по поводу фона.

У меня есть бесконечный цикл в фоновом режиме. Как я могу это остановить?

 Brad Christie06 янв. 2011 г., 19:36
Пожалуйста, опубликуйте код вашего работника, чтобы мы могли лучше понять, в чем проблема. (даже если вы удалите блоки кода и просто покажете, где вы инициализируете работника, каков ваш работникнеясно делать то, что вы делаете, чтобы остановить это в настоящее время).

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

Решение Вопроса

BackgroundWorker имеет встроенную поддержку отмены. Отменить фоновый рабочий звонокBackgroundWorker.CancelAsync, Также вам нужно изменить рабочий код для проверки отмены, как указано в документации:

CancelAsync отправляет запрос на завершение ожидающей фоновой операции и устанавливает для свойства CancellationPending значение true.

Когда вы вызываете CancelAsync, ваш рабочий метод имеет возможность остановить его выполнение и выйти. Рабочий код должен периодически проверять свойство CancellationPending, чтобы увидеть, было ли оно установлено в true.

Например, если у вас есть этот бесконечный цикл в вашем рабочем потоке:

while (true)
{
    ...
}

тогда вы можете изменить его на:

while (!backgroundWorker.CancellationPending)
{
    ...
}

Для отмены работы вам также необходимо установить свойствоBackgroundWorker.WorkerSupportsCancellation вtrue, Это можно сделать в конструкторе.

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