Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
1-19223
Johnmen
2002-02-19 17:01
2002.03.07
Тень отца Гамлета


3-19111
Alexy
2002-02-11 15:24
2002.03.07
Откат и обновление


1-19246
Lord Vader
2002-02-20 09:58
2002.03.07
СРАВНЕНИЕ СТРОК


3-19116
Cossys
2002-02-07 13:35
2002.03.07
Что не так с запросом? Помогите, пожалуйста.


7-19366
alex16
2001-12-01 06:12
2002.03.07
win 2000





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский