В фоновом потоке выполняется последовательность обработки в виде последовательности функций, также есть форма с кнопкой отмены.Как обычно, кнопка отмены устанавливает бит CancellationPending
.
Между каждым вызовом функции это проверяется:
If (worker.CancellationPending) Then
e.Cancel = True
Return
End If
Но если одна функция (например, для загрузки числафайлов) начинает показывать сообщения об ошибках, пользователь хочет остановить программу прямо там, вместо того, чтобы ждать, пока не завершится полная функция.Как я могу это сделать?
Я мог бы проверять бит worker.CancellationPending
несколько раз в каждой функции, но я чувствую, что это может привести к действительно неудобному коду.
Есть ли способостановить фонового работника, когда он выполняет функцию?