Вниз
Скачать: CL | DM;

Синхронизация процессов   Найти похожие ветки 

← →
Voyager ©   (2002-01-08 14:59) [0]

Есть программа, которая запускает процесс.
Запущенный процесс по окончании своей работы запускает еще один процесс и завершается. Осеовнпя программа должеа продолжить свою работу по заверщении последнего (3-го) процесса. Помогите, объясните........как их синхронизировать ?????
Заранее спасмбо.


← →
panov ©   (2002-01-08 15:46) [1]

Ну посылай основному приложению свое сообщение из третьего процесса, да и все...


← →
Vovchik ©   (2002-01-08 16:32) [2]

Корректней было бы делать мутекс, который убивался бы, когда завершается последний процесс.

>panov: мессадж плохо, потому что последний процесс может некорректно завершиться, например, кто-нибудь его убъёт.


← →
Voyager ©   (2002-01-08 18:55) [3]

Replay to all!!!!!!!!!
Ни message , ни Mutx не могу.
Все порожденные процессы - EXE"ники. События тоже под сомнением.
Правда не знаю еще, не ковыряд толком . Надежда на отображаемые в память файлы, прада очень слабая. :(((((((


← →
Suntechnic ©   (2002-01-09 04:28) [4]

Voyager © (08.01.02 18:55)
Да объясни ты толком проблему. А то только "...не могу, другое под сомнением..." Чем Mutex не угодил? Он по своей природе предназначен для синхронизации межпроцессорного взаимодействия, и я знаю очень мало случаев, когда он не устраивал...


← →
Voyager ©   (2002-01-09 07:22) [5]

Второ1 и трнтий процессы не мои. Не могу послпть сообщение. И Mutex немогу в них открыть. Второй процесс вогу обработать по WaitSingle.... Но он и не нужен мне особенно. Последний процесс!
Вот в чем вопрос. Чувствую что можно - а как? Опыьа в этом деле нет. Я новенький тут у вас в форуме.


← →
panov ©   (2002-01-09 08:53) [6]

Тебе нужно из основного процесса отлавливать появление Handle последовательно первого, второго и третьего процесса, и ожидать завершение каждого.


← →
Suntechnic ©   (2002-01-09 09:14) [7]

Voyager © (09.01.02 07:22)
Да не нужны в твоём случае Mutex-сы вообще. В WaitForSingleObject передавай Handle второго процесса, который ты получишь после CreateProcess. Ожидание закончится, когда умрёт второй процесс, но в этот момент, насколько я понял, третий процесс уже существует. Одна из проблем, что третий процесс создан не тобой и ты не знаешь его Handle. Но это решаемо. Если знаешь какое окно создано этим процессом, то получаешь его pid через GetWindowThreadProcessId, а из OpenProcess получаешь уже Handle, который передаёшь опять же в WaitForSingleObject... только в этом решении тоже не всё чисто... например, если второй процесс умирает раньше, чем третий успевает проинициализироваться... тогда придётся "придержать" первый процесс...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.007 c
6-19274
Serg!
2001-12-19 12:18
2002.03.07
Подскажите плз как заставить net send egor message принимать мессаги на компе с 9Х/МЕ


14-19339
Suntechnic
2002-01-23 23:58
2002.03.07
Вот, наткнулся в Инете....


4-19386
mili
2002-01-10 19:01
2002.03.07
функция API для вывода в DBGrid e поля MEMO


6-19282
Lamok
2001-12-14 22:39
2002.03.07
Скорость


3-19093
Bormanoid
2002-02-08 15:49
2002.03.07
Проблема с QReport.Preview




   Наверх