Функция
CreateFiberExФункция
CreateFiberEx предназначает объект нити, назначает ее стек и подготавливает исполнение кода, которое начинается с заданного начального адреса, обычно с функции нити. Эта функция не устанавливает очередность обслуживания нити.
dwStackCommitSize, SIZE_T dwStackReserveSize, DWORD dwFlags , LPFIBER_START_ROUTINE lpStartAddress, LPVOID lpParameterLPVOID CreateFiberEx(SIZE_T ); |
dwStackCommitSize
[in] Начальный фиксированный размер стека, в байтах. Функция завершается ошибкой, если она не может поместить байты параметра
dwStackCommitSizedwStackReserveSize
[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 |
Нет |
Замечания по платформе |
Не имеется |