Сергей Пятыгин
Спасибо, то есть идея состоит в том чтобы создать некий Контролер (видимо это класс), который будет создаваться событием (к примеру нажатием все той же кнопки) и контролировать загрузку данных из гуи, запуск потока и вывод результата в гуи?
почти.
пусть это будет "контроллер"
его кто-то создает, потом заполняет данными из ГУИ, настраивает каллбеки.
затем контроллер передается потоку на выполнение расчетов, либо расчеты выполняются в основном потоке.
по окончанию расчетов дергаются каллбеки, передающие результаты расчетов в аргументах, либо сам контроллер, если итоговые данные хранятся в нем же.
за разрушение контроллера отвечает либо поток в первом случае, либо вызывающий код во втором.