我正在使用 Windows API 线程,我想比较线程 ID。
首先,我用 CreateThread() 创建了一个线程并存储我从函数中获取的句柄 ( HANDLE ) 和 ID ( LPDWORD )。
然后我使用 GetCurrentThread() 从创建的线程中获取句柄和 ID和 GetThreadId() .
对于两个句柄和两个 ID,我总是得到不同的值。
有没有办法以类似于 pthread 的方式比较线程?
我这样做是为了作为确认正确执行的调试选项。我总是从其他库(pthread.h、threads.h)但不是从 Windows api 得到正确的结果。这不是一个关键问题,但我想学习 winapi 中的程序
最佳答案
除了使用 GetCurrentThread() 和 GetThreadId(),您还可以使用 GetCurrentThreadId() [ http://msdn.microsoft.com/en-us/library/windows/desktop/ms683183%28v=vs.85%29.aspx] . 如前所述,不要在另一个线程上使用伪 HANDLE(由 GetCurrentThread() 返回)。
据我所知,一个线程可以有多个不同的 HANDLE,但 ID 应该是唯一标识符。
关于使用 Windows API 比较线程 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23374085/