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
{
....
}
注解
pfnThreadProc 和 pfnCallback 指向的函数必须采用以下形式。
DWORD WINAPI ThreadProc(LPVOID pData)
{
...
}
函数名称是任意的。 pData 参数指向具有初始化信息的应用程序定义数据结构。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版、Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | shlwapi.h |
Library | Shlwapi.lib |
DLL | Shlwapi.dll (5.0 或更高版本) |