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