Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.07;
Скачать: 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 вся ветка

Текущий архив: 2002.03.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
4-19379
sandman
2002-01-09 13:42
2002.03.07
Как уменьшить объём занимаемой памяти?


3-19113
vopros
2002-02-11 10:18
2002.03.07
Как сделать post в базе когда запись она находиться в режиме Редактирвания?


1-19179
konrads
2002-02-18 12:00
2002.03.07
Картинки JPG, TIFF, GIF и т.п в базах данных


1-19169
x_andrey
2002-02-21 06:30
2002.03.07
Excel & Delphi 5


4-19388
vlv
2002-01-10 11:47
2002.03.07
Реестр