ActiveX в Delphi


Процессы и потоки



Процесс - это выполняющееся приложение Windows. Так как Windows - многозадачная операционная система, то в ней может работать сразу несколько процессов. Каждый процесс получает свое адресное пространство (размером до 4-х гигабайт). В этом пространстве хранится код приложения, его данные, а также все подключаемые библиотеки (DLL).
Сами процессы ничего не выполняют. Каждый процесс состоит из потоков (threads), которые выполняют код процесса (подробнее о потоках и об их создании см. главу 3). Любой процесс состоит как минимум из одного потока, который называется первичным или главным потоком (primary thread). Процесс может состоять из нескольких потоков, только один из которых будет главным.
Поток - это объект операционной системы, который представляет собой часть кода, находящегося внутри некоторого процесса. .
При создании процесса операционная система создает его главный поток, который может генерировать дополнительные потоки. При этом каждому потоку процесса Windows выделяет свои кванты времени процессора, в зависимости от приоритета потока.
Для работы с процессами Win32 API имеет встроенные функции, перечисленные в табл. 1.9.
Таблица 1.9. Функции Win32 API для работы с процессами


Функция Win32 АРI

Предназначение

CreateProcess

Создает новый процесс и его главный поток. Используется вместо функции Windows 3.1 winExec. При помощи данной функции можно запускать приложения

ExitProcess

Завершение выполнения процесса и всех его потоков

GetCurrentProcess

Возвращает псевдодескриптор текущего процесса. Настоящий дескриптор текущего процесса можно получить С ПОМОЩЬЮ функции DuplicateHandle

DuplicateHandle

Функция, предназначенная для создания копии объекта ядра

GetCurrentProcess ID

Возвращает идентификатор текущего процесса. Данный идентификатор уникален для каждого процесса операционной системы

GetExitCodeProeess

Получение статуса окончания процесса

GetPriorityClass

Возвращает класс приоритета для конкретного процесса

GetStartupInfo

Возвращает содержимое структуры TStartupinfo,

которая создается во время создания процесса

OpenProcess

Возвращает дескриптор процесса по его идентификатору

SetPriorityClass

Устанавливает класс приоритета для конкретного процесса

TerminateProcess

Прекращение выполнения процесса и всех его потоков

WaitForInput Idle

Перевод процесса в режим ожидания ввода



Содержание раздела