Текущий архив: 2004.10.24;
Скачать: CL | DM;
ВнизWaitForSingleObject с перерисовкой вызвавшего приложения Найти похожие ветки
← →
П7 (2004-10-08 11:37) [0]Уважаемые Мастера!
У меня сейчас одна прога (1) вызывает на выполение вторую (2). Вызывает и далее WaitForSingleObject, пока не произойдёт закрытие 2. Т.к. 1 никак не реагирует на нажатия мыши (это нужно) и не перерисовывается (это НЕ нужно), то мне приходится минимизировать её.
Есть ли способ заставить вызвавшую программу 1 принудительно перерисовываться, но всё так же не реагировать на всякие манипуляции, типа перетаскивания, ввода и пр?
← →
Reindeer Moss Eater © (2004-10-08 11:38) [1]В документации настоятельно не рекомендуется вызывать функции ожидания в оновном потоке GUI приложения.
← →
Суслик © (2004-10-08 11:44) [2]1) Запускай и ожидай в доп. потоке.
2) Можешь также попробовать использовать MsgWaitForMultipleObjects. И реагировать на определенный события.
← →
Семен Сорокин © (2004-10-08 11:51) [3]3) сделать цикл ожидания вручную, с проверкой наличия запущенного процесса в списке процессов.
← →
Romkin © (2004-10-08 11:53) [4]ТАм последний параметор в wait - TIMEOUT. Ставь полсекунды, и давай repaint формы, в цикле, если, конечно, именно время кончилось, а не процесс :)
← →
Romkin © (2004-10-08 11:53) [5]ТАм последний параметор в wait - TIMEOUT. Ставь полсекунды, и давай repaint формы, в цикле, если, конечно, именно время кончилось, а не процесс :)
← →
Romkin © (2004-10-08 11:54) [6]
while WaitForSingleObject(pi.hProcess, 1000) = WAIT_TIMEOUT do
Update;
← →
ssk © (2004-10-08 11:56) [7]
var
p : TProcessInformation;
while WaitForSingleObject(p.hProcess, 50) = WAIT_TIMEOUT do
Application.ProcessMessages;
← →
Polevi © (2004-10-08 12:26) [8]MsgWaitForMultipleObjects
← →
П7 (2004-10-08 13:37) [9]Спасибо, буду пробовать. (:
Страницы: 1 вся ветка
Текущий архив: 2004.10.24;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.064 c