Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Создание потоков (нитей, threads) и управление потоками.Содержание книги
Поиск на нашем сайте
Существует 2 основных способа работа с потоками: через функции API и с помощью специализированных классов. Использование библиотеки API Win32 - наиболее мощный и универсальный метод работы с потоками. Все специализированные классы являются надстройками над соответствующими функциями API. Поток создаётся с помощью функции API, возвращающей дескриптор потока: function CreateThread( Attr: pointer; //адрес аттрибутов безопасности Stack: Dword; //размер стека для потока Start: pointer; //начальный адрес потока Par: pointer; //аргументы потока flag: Dword; //флаг создания var ID: Dword; //возвращаемый идентификатор потока ):Thandle; //дескриптор потока
Параметр Attr обычно задаётся равным Nil, что соответствует атрибутам безопасности по умолчанию. Параметр Stack задаёт размер стека потока. Если он равен нулю, то размер стека совпадает с размером стека основного потока. Параметр Start основной. Через него передаётся адрес функции, вызываемой при запуске потока. Эта функция обязана возвращать результат типа longint,иметь один параметр типа pointer. При описании функции необходимо атрибут stdcall, определяющий стандартный для API способ вызова функции(запись аргументов в стек в порядке справо-налево, очистка стека при завершении работы самой подпрограммой). Параметр Par – указатель на структуру(запись), содержащую аргументы, передаваемые в процедуру потока. Если Par=Nil, то аргументы отсутствуют. Если задать флаг создания равным нулю, то поток сразу начнёт работу, а если указать константу CREATE_SUSPENDED, то поток начнёт работу только после вызова функции function ResumeThread(hThread: Thandle): Dword; Здесь hThread — дескриптор созданного потока. Приостановить поток можно с помощью функции function SuspendThread(hThread: Thandle): Dword; Чтобы досрочно завершить поток нужно сначала вызвать функцию SuspendThread, а затем функцию function CloseHandle(hThread: THandle): Dword;
|
||
|
Последнее изменение этой страницы: 2024-06-27; просмотров: 48; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.008 с.) |