В вашем основном потоке создайте рабочий поток для вашей вычислительной задачи, которая будет выполняться часами.Win32 API CreateThread
должен помочь в этом. См. Справку по функции здесь и пример здесь .
Затем вам нужно связаться с вашим рабочим потоком, в частности, сообщить ему об остановке, когда вы нажмете кнопку Стопнажата.Несколько способов, PostThreadMessage
должен быть одним из самых удобных для этого. См. Справку по функции здесь .
Таким образом, при нажатии кнопки «Стоп» сообщение будет отправлено в ваш рабочий поток, и ваш рабочий поток периодически проверяет, присутствует ли такой сигнал «Стоп».испускается вашим основным потоком.Вы можете решить, как «периодически» он проверяет, что, в свою очередь, решает, насколько реагирует ваш рабочий поток, когда сигнализируется «Стоп».