Я пишу приложение для Windows, которое многократно выполняет последовательность действий цифрового ввода-вывода.
Эта последовательность действий начинается, когда пользователь нажимает кнопку «ПУСК», и выполняется фоновым рабочим в backgroundWorker1_DoWork ().
Однако бывают случаи, когда я получаю сообщение об ошибке «Этот фоновый рабочий сейчас занят .......».
Я подумываю реализовать в коде следующее, используя цикл while, чтобы «убить» фонового рабочего перед запуском другой последовательности действий:
if (backgroundWorker1.IsBusy == true)
{
backgroundWorker1.CancelAsync();
while (backgroundWorker1.IsBusy == true)
{
backgroundWorker1.CancelAsync();
}
backgroundWorker1.Dispose();
}
backgroundWorker1.RunWorkerAsync();
Я думаю, что меня больше всего беспокоит, будет ли в конечном итоге "убит" backgroundWorker1? Если будет, долго ли это займет?
Заставит ли это кодирование бесконечный цикл?