VB 2010 — Остановка цикла с помощью кнопки

#vb.net #loops

#vb.net #циклы

Вопрос:

Я использую VB 2010, у меня есть цикл, который занимает около 5 минут до его завершения. Я хочу предоставить пользователю возможность остановить его в середине или когда они захотят. Есть кнопка, которая запускает цикл, и после того, как я нажимаю на нее, цикл запускается, и кнопка как бы «застревает». Я видел что-то под названием «фоновая работа» в VB Toolbox, может ли это быть решением моей проблемы?

Ответ №1:

Запустите цикл в отдельном потоке и установите флаг, который направляет действие цикла. Продолжайте опрашивать этот флаг, чтобы узнать, хочет ли пользователь остановить поток внутри цикла в потоке. Смотрите BackgroundWorker

Ответ №2:

Я думаю, что фоновый рабочий будет работать, но очень простое решение, если создать логическую переменную (видимую в области видимости вашей кнопки остановки и логического цикла), которая управляет остановкой внутри вашего цикла. Ваша кнопка остановки установит для переменной значение true, и при следующем нажатии на этот код она остановится. возможно, вам понадобится приложение.выполняйте события внутри вашего цикла в конце, чтобы разрешить запуск события кнопки. Это не идеальный способ, но, безусловно, простой.