Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метода Процессы и потоки.doc
Скачиваний:
7
Добавлен:
14.07.2019
Размер:
401.92 Кб
Скачать

ExitThread

Описание Функция ExitThread завершает нить. Это наиболее предпочтительный способ завершения нити. Когда эта функция вызывается явным образом либо при возврате из процедуры нити, стек текущей нити освобождается и выполнение нити завершается. После завершения нити состояние объекта нити становится сигнальным. Кроме того, состояние завершения, возвраща­емое функцией GetExitCodeThread, изменяется со STILL_ACTIVE на код завершения, определенный параметром uExitCode. Завершение нити не оказывает влияния на порожденные процессы, которые она запускает. Нить не удаляется из системы до тех пор, пока не закроются все ее дес­крипторы.

Синтаксис VOID ExitThread(DWORD uExitCode)

Параметры uExitCode DWORD: Код завершения вызывающей нити. Для выборки кода завершения нити применяется GetExitCodeThread.

Включаемый файл winbase.h

См. также GetExitCodeThread, GetExitCodeProcess, ExitProcess,CloseHandle.

InitializeCriticalSection

Описание Функция InitializeCriticalSection устанавливает объект критического участка кода. Эта функция должна вызываться перед выполнением функции EnterCriticalSection. Объект критического участка кода можно использо­вать для синхронизации нитей одного процесса методом взаимного исклю­чения. Для выделения памяти, используемой объектом критического участ­ка кода, в отвечающем за это процессе потребуется объявить переменную типа CRITICAL_SECTION. После инициализации критического участка кода применяются функции EnterCriticalSection, TryEnterCriticalSection и LeaveCriticalSection.

Синтаксис VOID InitializeCriticalSection (LPCRITICAL_SECTION lpCriticalSection)

Параметры lpCriticalSection LPCRITICAL_SECTION: Указатель на инициализируемый объект крити­ческого участка кода.

Включаемый файл winbase.h

См. также EnterCriticalSection, LeaveCriticalSection, TryEnterCriticalSection, DeleteCriticalSection.

Пример См. пример применения функции EnterCriticalSection.

DeleteCriticalSection

Описание Функция DeleteCriticalSection освобождает все ресурсы, связанные с объектом критического участка кода, который не принадлежит данному процессу. После удаления объекта критического участка кода функции EnterCriticalSection, TryEnterCriticalSection и LeaveCriticalSection не смогут обратиться к уже удаленному объекту.

Синтаксис VOID DeleteCriticalSection(LPCRITICAL_SECTION lpcsCriticalSection)

Параметры lpcsCriticalSection LPCRITICAL_SECTION: Указатель на удаляемый объект критического участка кода.

Включаемый файл winbase.h

См. также EnterCriticalSection, LeaveCriticalSection, InitializeCriticalSection, TryEnterCriticalSection.

Пример См. пример применения функции EnterCriticalSection.

LeaveCriticalSection

Описание Функция LeaveCriticalSection уступает права владения объектом критического участка кода. Права владения должны быть отданы в результате вызова функции LeaveCriticalSection столько раз, сколько владеющая ими нить применяет функцию EnterCriticalSection к тому же самому объекту.

Синтаксис VOID LeaveCriticalSection(LPCRITICAL_SECTION lpcsCriticalSection)

Параметры lpcsCriticalSection LPCRITICAL_SECTION: Указатель на объект критического участка кода, используемый при вызове, соответственно, функции EnterCritical­Section или TryEnterCriticalSection.

Включаемый файл winbase.h

См. также CreateMutex, DeleteCriticalSection, InitializeCriticalSection, EnterCriticalSection, TryEnterCriticalSection.

Пример См. пример применения функции EnterCriticalSection.