Индикатор выполнения перестает двигаться, потому что Windows считает, что с вашей программой что-то серьезно не так.Он заменяет ваше главное окно на «призрачное» окно, которое вы можете сказать, потому что в строке заголовка написано «Не отвечает».
Это сделано для того, чтобы предупредить пользователя о том, что ваша программа мертва для мира ине будет отвечать на любые входные данные от пользователя.Нажатие мыши или стук по клавиатуре не окажет никакого эффекта, все, что может сделать пользователь, это беспомощно наблюдать, пока ваш код проходит через движения.
Это не создает желаемого пользовательского интерфейса.Вы решаете это с помощью BackgroundWorker, поэтому тяжелая работа выполняется в отдельном потоке.Оставляя поток пользовательского интерфейса отзывчивым.Обязательно прочтите статью MSDN, чтобы знать, что делать, и вам придется адаптировать свой код.