在經典書籍「在Win32中多線程應用程序」,在第31頁,有如下語句:從線程ID獲取句柄是不可能的?
爲了加強安全性,它是不可能從 線程ID獲取句柄。
但是,我知道有一個衆所周知的API,即OpenThread
,可以完成這項工作。
這是本書的錯誤嗎?
在經典書籍「在Win32中多線程應用程序」,在第31頁,有如下語句:從線程ID獲取句柄是不可能的?
爲了加強安全性,它是不可能從 線程ID獲取句柄。
但是,我知道有一個衆所周知的API,即OpenThread
,可以完成這項工作。
這是本書的錯誤嗎?
有問題的書Multithreading Applications in Win32發佈於1996年,早於功能可用的操作系統。所以,這本書已經過時了。
上面的MSDN鏈接說OpenThread()
需要WindowsXP/2003。然而,正如Luke在下面評論指出,看來這個功能也是在Windows 2000中(這還是早的書有問題,但我認爲它值得澄清
參考文獻:
OpenThread出現在Windows 2000中,但你的觀點仍然存在。不幸的是,微軟正在清理這樣的MSDN文檔。 – Luke
@Luke我找到了一些相關的信息,並將其添加到答案。謝謝你的提醒! –
[本書](http://www.amazon.com/Multithreading-Applications-Win32-Complete -Threads/dp/0201442345)於1996年出版;早在Windows XP/2003之前已經添加了[你提到的功能](http://msdn.microsoft.com/en-us/library/windows/desktop/ms684335(v = vs.85).aspx)。我肯定會推薦考慮購買一本新書。 –
@Andrew,你可以給你的評論一個答案?我會選擇它作爲答案。 – xmllmx
發表評論爲答案! :) –