В основной программе задаются параметры, а затем создается поток в котором ведутся вычисления (функция Calculation).
HANDLE hCalculationEndEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
HANDLE hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) Calculation, &hCalculationEndEvent, 0, 0);
WaitForSingleObject(hCalculationEndEvent, INFINITE);
//дальше обрабатываем вычисленные данные
Надо во время вычислений рисовать диалог с анимированной контролкой.
Как это сделать, ведь основной поток ожидеает окончания вычислений?
06.10.06 00:16: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Здравствуйте, Lunohod, Вы писали:
L>В основной программе задаются параметры, а затем создается поток в котором ведутся вычисления (функция Calculation).
L>
L> HANDLE hCalculationEndEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
L> HANDLE hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) Calculation, &hCalculationEndEvent, 0, 0);
L> WaitForSingleObjectEx(hCalculationEndEvent, INFINITE, TRUE);
L> //дальше обрабатываем вычисленные данные
L>
L>Надо во время вычислений рисовать диалог с анимированной контролкой.
L>Как это сделать, ведь основной поток ожидеает окончания вычислений?
Здравствуйте, Lunohod, Вы писали:
L>В основной программе задаются параметры, а затем создается поток в котором ведутся вычисления (функция Calculation).
может я чего не понял, но...
L>L>HANDLE hCalculationEndEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
L>HANDLE hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) Calculation, &hCalculationEndEvent, 0, 0);
L>WaitForSingleObject(hCalculationEndEvent, INFINITE);
L>//дальше обрабатываем вычисленные данные
можно ведь просто ждать завершения потока, зачем тебе event?
L>Как это сделать, ведь основной поток ожидеает окончания вычислений?
имхо, с таким же успехом он может выполнять вычисления сам...
L>Надо во время вычислений рисовать диалог с анимированной контролкой.
ну так рисуй себе в новом потоке, закончишь вычисления — саспендишь, появятся новые даные — возобновляешь...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, Aleksey Pashko, Вы писали:
AP>можно ведь просто ждать завершения потока, зачем тебе event?
L>>Как это сделать, ведь основной поток ожидеает окончания вычислений?
AP>имхо, с таким же успехом он может выполнять вычисления сам...
L>>Надо во время вычислений рисовать диалог с анимированной контролкой.
AP>ну так рисуй себе в новом потоке, закончишь вычисления — саспендишь, появятся новые даные — возобновляешь...
Спасибо большое. Разобрался

Так правдо все проще получается.