createFiber 函式 (winbase.h)
配置 Fiber 物件、指派堆疊,並設定執行以從指定的起始位址開始,通常是 Fiber 函式。 此函式不會排程光纖。
若要同時指定認可和保留堆疊大小,請使用 CreateFiberEx 函 式。
語法
LPVOID CreateFiber(
[in] SIZE_T dwStackSize,
[in] LPFIBER_START_ROUTINE lpStartAddress,
[in, optional] LPVOID lpParameter
);
參數
[in] dwStackSize
堆疊的初始認可大小,以位元組為單位。 如果此參數為零,新的 Fiber 會使用可執行檔的預設認可堆疊大小。 如需詳細資訊,請參閱 執行緒堆疊大小。
[in] lpStartAddress
由 Fiber 執行之應用程式定義函式的指標,代表光纖的起始位址。 執行新建立的 Fiber 不會開始,直到另一個光纖呼叫具有此位址的 SwitchToFiber 函式為止。 如需 Fiber 回呼函式的詳細資訊,請參閱 FiberProc。
[in, optional] lpParameter
傳遞給 Fiber 之變數的指標。 Fiber 可以使用 GetFiberData 宏來擷取此資料。
傳回值
如果函式成功,傳回值就是 Fiber 的位址。
如果函式失敗,傳回值為 Null。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
進程可建立的光纖數目受限於可用的虛擬記憶體。 例如,如果您使用 1 MB 的保留堆疊空間建立每個光纖,您最多可以建立 2028 個光纖。 如果您在模組定義中使用 STACKSIZE 語句來減少預設堆疊大小, (.def) 檔案或使用 CreateFiberEx,您可以建立更多光纖。 不過,如果您使用替代策略來處理要求,而不是建立這類大量光纖,您的應用程式會有更好的效能。
線上程可以使用 SwitchToFiber 函式排程光纖之前,它必須先呼叫 ConvertThreadToFiber 函式,以便有與執行緒相關聯的 Fiber。
若要編譯使用此函式的應用程式,請將_WIN32_WINNT定義為0x0400或更新版本。 如需詳細資訊,請參閱 使用 Windows 標頭。
範例
如需範例,請參閱 使用 Fibers。
規格需求
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winbase.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |