Главная страница
    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
6-19295
AIRS
2001-12-19 12:57
2002.03.07
PowerSocket


14-19298
EugeneT
2002-01-17 13:50
2002.03.07
Разработка кросс-платформенных приложений (D6)


1-19176
vitnt2000
2002-02-21 14:54
2002.03.07
Иконки в программе


3-19054
amnezia
2002-02-08 03:36
2002.03.07
Помогите! Есть такая компонента prReport,


3-19094
JS
2002-02-10 20:14
2002.03.07
Как снести индекс?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский