Если вы хотите, чтобы ваш пользовательский интерфейс оставался отзывчивым во время выполнения подпрограммы, вам нужно либо прокачать сообщения внутри подпрограммы (что само по себе может привести к неприятностям при повторном входе), либо перенести подпрограмму в поток.Предпочтительным способом сделать это является рабочий поток.
На моем веб-сайте есть введение в рабочие потоки здесь .Когда поток завершает свою работу, вы можете отправить зарегистрированное сообщение обратно в главное окно.Рабочие потоки довольно просты.
В ожидании вашего следующего вопроса о отмене длительной операции, есть обсуждение вариантов, доступных вам для этого на моем сайте здесь ,Предупреждение, некоторые из них очень глупы, но я стараюсь быть полным: -)