Реферат: Процессы, нити и волокна в ОС Windows

memset (&StartUpInfo, 0, sizeof(STARTUPINFO));

StartUpInfo.cb=sizeof(STARTUPINFO);

If (CreateProcess (NULL, «c:\\windows\\calc.exe», NULL, NULL, FALSE,

NORMAL_PRIORITY_CLASS, NULL, NULL,&StartUpInfo,&ProcessInfo))

{

Sleep(15000);

TerminateProcess (ProcessInfo.hProcess, 0);

}

ExitProcess(0);

}

Функция WaitForSingleObject() приостанавливает выполнение нити до тех пор, пока не произойдет одно из двух событий:

– истечет таймаут ожидания;

– ожидаемый объект перейдет в сигнальное (signaled) состояние.

По возвращаемому значению можно понять, какое из двух событий произошло. Ожидать с помощью wait‑функций можно большинство объектов ядра, например, объект «процесс» или «нить», чтобы определить, когда они завершат свою работу.

Функции WaitForMultipleObjects передается сразу массив объектов. Можно ожидать срабатывания сразу всех объектов или какого-то одного из них.

Пример. Программа создает две одинаковых нити и ожидает их завершения. Нити просто выводят текстовое сообщение, которое передано им при инициализации.

#include <windows.h>

#include <process.h>

unsigned ThreadFunc (void * arg)

{

char ** str = (char**) arg;

MessageBox (0, str[0], str[1], 0);

ExitThread(0);

return 0;

}

int main (int argc, char* argv[])

{

char * InitStr1 [2] = {«First thread running!», «11111»}; // строка для первой нити

char * InitStr2 [2] = {«Second thread running!», «22222»}; // строка для второй нити

К-во Просмотров: 245
Бесплатно скачать Реферат: Процессы, нити и волокна в ОС Windows