Вверх ↑
Этот топик читают: Гость
Ответов: 1926
Рейтинг: 172
#1: 2007-08-23 10:44:20 ЛС | профиль | цитата
Мне необходимо, чтобы действие выполнялось после завершения выполнения процесса. То есть, запустил (через IC) процесс функцией
WinExec
с параметром, чтоб в WinRAR добавлялся файл, а после этой функции идёт следующая, но она должна выполняться только ПОСЛЕ окончания кпаковки файла. У меня же выполняется (например, тот же _hi_OnEvent) сразу после передачи параметров WINRAR'у.
Подскажите, как сделать, чтоб функция, например, тот же _hi_OnEvent выполнялась после упаковки.
карма: 9
0
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2007-08-23 10:51:40 ЛС | профиль | цитата
мне кажется вопросы по реализации чего-то с использованием инструментария целевого языка следует задавать на соответствующих форумах.
карма: 27
0
Ответов: 5446
Рейтинг: 323
#3: 2007-08-23 19:53:20 ЛС | профиль | цитата
3042, в одном из старых проектов делал так (код на C++) :

code_1855.txt
карма: 1

0
файлы: 1code_1855.txt [791B] [331]
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2007-08-23 22:36:07 ЛС | профиль | цитата
пример есть в одном из элементов стандартного пакета. Если бы вместо копаний с IC была изучена база, то подобных вопросов не возникало бы.
карма: 27
0
Ответов: 9906
Рейтинг: 351
#5: 2007-08-23 22:49:36 ЛС | профиль | цитата
Dilma, по-моему режим wait для консольных не работает...
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#6: 2007-08-23 22:57:03 ЛС | профиль | цитата
в том же элементе и для консоли все есть.
карма: 27
0
Ответов: 9906
Рейтинг: 351
#7: 2007-08-23 23:57:14 ЛС | профиль | цитата
Мда...
А onConsoleResult и onConsoleError прут в схему в асинхнонном потоке
Надо бы строго указать tsdima

Насколько я понимаю, это <все есть> в событие еще и превратить надо уметь...
Если получится...
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#8: 2007-08-23 23:59:14 ЛС | профиль | цитата
угу в асинхронном... Поправить конечно надо бы. Опционально хотя бы
карма: 27
0
Ответов: 2125
Рейтинг: 159
#9: 2007-08-24 11:27:43 ЛС | профиль | цитата
Galkov писал(а):
А onConsoleResult и onConsoleError прут в схему в асинхнонном потоке

Это делалось для того, чтобы сделать консоль интерактивной, а не "послал-получил-и всё"

Dilma писал(а):
Опционально хотя бы

А вот это верно. Не подумал я про совместимость. Точнее, подумал, но решил, что это не так важно. А надо было новое свойство сделать.

[size=-2]------ Добавлено в 11:27
А что, onConsoleTerminate не работает?
карма: 1

0
Ответов: 9906
Рейтинг: 351
#10: 2007-08-24 11:35:07 ЛС | профиль | цитата
tsdima писал(а):
Это делалось для того, чтобы сделать консоль интерактивной

И как это противоречит синхронизации события с основным потоком приложения
карма: 9

0
Ответов: 1926
Рейтинг: 172
#11: 2007-08-24 13:38:03 ЛС | профиль | цитата
Разобрался.
карма: 9
0
Ответов: 2125
Рейтинг: 159
#12: 2007-08-24 17:31:09 ЛС | профиль | цитата
Galkov писал(а):
И как это противоречит синхронизации события с основным потоком приложения

Если цикл чтения из pipe оставить в doConsoleExec, то пришлось бы в нём ещё и сообщения прокачивать (иначе, например, сокеты не будут работать, да и само приложение "подвиснет"). Вследствие чего возможен был бы повторный вызов doConsoleExec, который надо было бы как-то блокировать, мне показалось - будет ещё больше проблем.
карма: 1

0
Ответов: 9906
Рейтинг: 351
#13: 2007-08-24 18:19:39 ЛС | профиль | цитата
tsdima, да это понятно, все правильно. Речь о другом: о СИНХРОНИЗАЦИИ с основным потоком проги.
карма: 9

0
Ответов: 2125
Рейтинг: 159
#14: 2007-08-24 21:13:35 ЛС | профиль | цитата
Это как в сокетах что-ли, через невидимое окно?
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#15: 2007-08-24 21:19:16 ЛС | профиль | цитата
это как в thread.Synhronize
карма: 27
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)