SHCreateThread 函式 (shlwapi.h)

建立執行緒。

語法

BOOL SHCreateThread(
  [in]           LPTHREAD_START_ROUTINE pfnThreadProc,
  [in, optional] void                   *pData,
  [in]           SHCT_FLAGS             flags,
  [in, optional] LPTHREAD_START_ROUTINE pfnCallback
);

參數

[in] pfnThreadProc

類型: LPTHREAD_START_ROUTINE

LPTHREAD_START_ROUTINE類型的應用程式定義函式指標。 如果已成功建立新的線程,則會在該線程的內容中呼叫此應用程式定義函式。 SHCreateThread 不會等待此參數指向的函式完成,然後再返回其呼叫端。 應用程式定義的函式傳回值是線程的結束代碼。

[in, optional] pData

類型: void*

包含初始化數據的選擇性應用程式定義數據結構的指標。 它會傳遞至 pfnThreadProc 所指向的函式,並選擇性地傳遞 至 pfnCallback。 此值可以是 NULL

[in] flags

類型: SHCT_FLAGS

控制函式行為的旗標。 一或多個 CTF 常數。

[in, optional] pfnCallback

類型: LPTHREAD_START_ROUTINE

LPTHREAD_START_ROUTINE類型的選擇性應用程式定義函式指標。 在 呼叫 pfnThreadProc 所指向的函式之前,會在建立的線程內容中呼叫此函式。 它也會收到 pData 做為其自變數。 SHCreateThread 會等候 pfnCallback 指向的函式傳回,然後再返回其呼叫端。 會忽略 pfnCallback 所指向之函式的傳回值。

傳回值

類型: BOOL

如果成功建立線程,則傳回 TRUE ,否則傳回 FALSE 。 失敗時,請使用 GetLastError 來擷取特定的錯誤值,如下所示。

if (!SHCreateThread(...))
{
    hr = HRESULT_FROM_WIN32( GetLastError() );
}
else
{
    ....
}

備註

pfnThreadProcpfnCallback 所指向的函式必須採用下列格式。

DWORD WINAPI ThreadProc(LPVOID pData)
{
  ...
}

函式名稱是任意的。 pData 參數會指向具有初始化資訊的應用程式定義數據結構。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版、Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 shlwapi.h
程式庫 Shlwapi.lib
Dll Shlwapi.dll (5.0 版或更新版本)

另請參閱

CreateProcess

CreateThread

SHCreateThreadRef

SHGetThreadRef

SHReleaseThreadRef

SHSetThreadRef

殼層和通用控件版本