Моя программа (некая утилита, VB, одна форма) сразу после запуска должна выполнить довольно длительную во времени операцию (цикл). На это время программа "зависает", пользователь теряет управление, закрытие формы приводит к вызову диалогового окна "Эта программа не отвечает ..." и т.п.
Посоветуйте, как реализовать такое взаимодействие, чтобы пользователь мог остановить программу? (не прибегая к "сильным средствам", вроде TerminateProcess

)