Markus_13, во первых вопрос я разрешил дополнительными потоками и WaitForSingleObject. А во вторых, первоначально у меня была идея, чтобы оборвать выполнение процедуры OnClick основного потока, чтобы стек и переменные сохранились. А когда "грузовой" поток бы завершился, вызвать по адресу продолжение процедуры OnClick с места где она оборвалась. Но это гемор, поэтому так.