null线程标识符[WinAPI](不是线程句柄)



假设我将DWORD thread_Id保存在某些结构(WinAPI)中。
(我问关于thread_ID不是thread_handle在这个问题。实际上,配置这两个很容易)

我需要将threadId变量初始化为某个空值

我要定义我的NULL_THREAD_ID值

它是否记录在msdn上的任何地方,其中DWORD值真实线程永远不能作为thread_ID ?0或(DWORD)-1 ?

   HANDLE WINAPI CreateThread(
     __in_opt   LPSECURITY_ATTRIBUTES lpThreadAttributes,
     __in       SIZE_T dwStackSize,
     __in       LPTHREAD_START_ROUTINE lpStartAddress,
     __in_opt   LPVOID lpParameter,
     __in       DWORD dwCreationFlags,
     __out_opt  LPDWORD lpThreadId
    );
例如,

GetThreadId给出了这个谜题的答案。它返回线程ID和文档状态:

如果函数失败,返回值为0。

因此,0永远不能是有效的线程ID。

是:检查CreateThread:

如果函数成功,返回值是新线程的句柄。

如果函数失败,返回值为NULL

And NULL = 0.

更新:注意线程标识符永远不会为0

最新更新