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