Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


ќжидание завершени€ процесса




ѕростейшим, но нар€ду с этим и обладающим наиболее ограниченными возможност€ми, методом синхронизации с другим процессом €вл€етс€ ожидание его завершени€. ѕредставленные ниже стандартные функции ожидани€ Windows обладают р€дом интересных свойств.

Х ‘ункции ожидани€ могут работать с самыми различными типами объектов; дескрипторы процессов €вл€ютс€ лишь самым первым из рассматриваемых нами примеров применени€ этих функций.

Х Ёти функции могут ожидать завершени€ одного процесса, первого из нескольких указанных процессов или всех процессов, образующих группу.

Х —уществует возможность устанавливать конечный интервал ожидани€ (time-out).

ќбе рассмотренных ниже функции ожидают перехода объекта синхронизации в сигнальное состо€ние. Ќапример, система переводит процесс в сигнальное состо€ние, когда он завершаетс€ или его выполнение прекращаетс€ извне. ‘ункци€ми ожидани€, которые мы будем впоследствии неоднократно использовать, €вл€ютс€ следующие функции:

DWORD WaitForSingleObject(HANDLE hObject, DWORD dwMilliseconds)

DWORD WaitForMultipleObjects(DWORD nCount, CONST HANDLE *lpHandles, BOOL fWaitAll, DWORD dwMilliseconds)

¬озвращаемое значение: указывает причину завершени€ ожидани€ или, в случае ошибки, равно 0xFFFFFFFF (дл€ получени€ более подробной информации используйте функцию GetLastError).

¬ аргументах этих функций указываетс€ либо дескриптор одиночного процесса (hObject), либо дескрипторы р€да отдельных объектов, хран€щиес€ в массиве, на который указывает указатель lpHandles. «начение параметра nCount, определ€ющего размер массива, не должно превышать значение MAXIMUM_WAIT_OBJECTS (определено равным 64 в файле WINNT.Ќ).

dwMilliseconds Ч число миллисекунд интервала ожидани€. ≈сли значение этого параметра равно 0, то возврат из функции осуществл€етс€ сразу же после проверки состо€ни€ указанного объекта, что позвол€ет программе опрашивать процессы дл€ определени€ их состо€ни€ завершени€. ≈сли же значение этого параметра равно INFINITE, то ожидание длитс€ до тех пор, пока ожидаемый процесс не завершитс€.

fWaitAll Ч параметр второй функции, указывающий (если его значение равно TRUE) на необходимость ожидани€ завершени€ всех процессов, а не только одного.

¬озможными возвращаемыми значени€ми этой функции в случае ее успешного завершени€ €вл€ютс€ следующие:

Х WAIT_OBJECT_0 Ч означает, что указанный объект перешел в сигнальное состо€ние (в случае функции WaitForSingleObject) или что одновременно все nCount объектов перешли в сигнальное состо€ние (в специальном случае функции WaitForMultipleObject, когда значение параметра fWaitAll равно TRUE).

Х WAIT_OBJECT_0+n, где 0 ≤ n < nCount Ч вычтите значение WAIT_OBJECT_0 из возвращенного значени€, чтобы определить, выполнение какого именно процесса завершилось, когда ожидаетс€ завершение выполнени€ любого из группы процессов. ≈сли в сигнальное состо€ние перешли несколько объектов, то возвращаетс€ наименьшее из возможных значений. WAIT_ABANDONED €вл€етс€ возможным базовым значением в случае использовани€ дескрипторов мьютексов; см. главу 8.

Х WAIT_TIMEOUT Ч указывает на то, что в течение отведенного периода ожидани€ сигнализируемый объект (объекты) не смогли удовлетворить условию ожидани€.

Х WAIT_FAILED Ч означает неудачное завершение функции, вызванное, например, тем, что у дескриптора отсутствовали права доступа SYNCHRONIZE.

Х WAIT_ABANDONED_0 Ч это значение невозможно в случае процессов и рассматриваетс€ в главе 8 при рассмотрении мьютексов.

ƒл€ определени€ кода завершени€ процесса используетс€ функци€ GetExitCodeProcess, описанна€ в предыдущем разделе.





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-09-20; ћы поможем в написании ваших работ!; просмотров: 497 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

≈сли вы думаете, что на что-то способны, вы правы; если думаете, что у вас ничего не получитс€ - вы тоже правы. © √енри ‘орд
==> читать все изречени€...

1950 - | 1933 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.022 с.