Функция CreateFiberEx


Функция CreateFiberEx предназначает объект нити, назначает ее стек и подготавливает исполнение кода, которое начинается с заданного начального адреса, обычно с функции нити. Эта функция не устанавливает очередность обслуживания нити.

Синтаксис

LPVOID CreateFiberEx(
SIZE_T dwStackCommitSize,
SIZE_T dwStackReserveSize,
DWORD dwFlags ,
LPFIBER_START_ROUTINE lpStartAddress,
LPVOID lpParameter
  ); 

Параметры

dwStackCommitSize

[in] Начальный фиксированный размер стека, в байтах. Функция завершается ошибкой, если она не может поместить байты параметра dwStackCommitSize

dwStackReserveSize

[in] Начальный зарезервированный размер стека, в байтах. Значение по умолчанию - 1 мегабайт.

dwFlags

[in] Если этот параметр нулевой, состояние с плавающей точкой в системах x86 не переключается, и данные могут быть разрушены, если нить использует арифметику с плавающей точкой. Если этот параметр - FIBER_FLAG_FLOAT_SWITCH, состояние с плавающей точкой переключается для нити.

lpStartAddress

[in] Указатель на определяемую программой функцию, код которой будет исполняться нитью и исполняет роль начального адреса нити. Исполнение кода недавно созданной нити не начинается до тех пор, пока другая нить не вызовет функцию SwitchToFiber с этим адресом. Для получения дополнительной информации о функции повторного вызова нити, см. FiberProc.

lpParameter

[in] Указатель на переменную, которая передается нити. Нить может извлекать эти данные при помощи использования макрокоманды GetFiberData.

Возвращаемые значения

Если функция завершается успешно, величина возвращаемого значения - адрес нити.

Если функция завершается с ошибкой, величина возвращаемого значения - ПУСТО (NULL). Чтобы получить дополнительные данные об ошибках, вызовите GetLastError.

Замечания

Число нитей, которые может создать процесс, ограничено доступной виртуальной памятью. По умолчанию, каждая нить имеет 1 мегабайт зарезервированного пространства стека. По этой причине Вы можете создавать, самое большее, 2028 потоков. Если Вы преобразовываете заданный по умолчанию размер, Вы можете создать большее количество нитей. Однако, ваше приложение будет иметь лучшую производительность, если Вы используете дополнительный прием для обработки запросов.

Прежде, чем поток может установить очередность обслуживания нити, используя функцию SwitchToFiber, он должен вызвать функцию ConvertThreadToFiber, так как имеемая нить, связанна с потоком.

Чтобы компилировать приложение, которое использует эту функцию, определите макрокоманду _WIN32_WINNT как 0x0400 или позже. Для получения дополнительной информации, см. статью Использование заголовков SDK.

Смотри также

Обзор Процессы и потоки, Функции, используемые процессами и потоками, ConvertThreadToFiber, FiberProc, GetFiberData, SwitchToFiber

Размещение и совместимость CreateFiberEx

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Нет

Windows NT

Нет

Windows Me

Нет

Windows 98

Нет

Windows 95

Нет

Используемая библиотека

Kernel32.lib

Заголовочный файл

 

- объявлено в

Winbase.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz