Share via


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

另請參閱

ConvertThreadToFiber

CreateFiberEx

FiberProc

纖維

GetFiberData

處理序和執行緒函式

SwitchToFiber