1)本帖來自WaitForSingleObject : how to get handle from _beginthreadex的回答說只有將uintptr_t返回_beginthreadex類型爲HANDLE纔是合法的,那麼將uintptr_t返回的_beginthread轉換爲HANDLE類型是不安全的?將_beginthread返回的uintptr_t強制轉換爲HANDLE安全嗎?
2)我們在32位應用程序中投射如下,它似乎運行良好,當我將此應用程序轉換爲64位時,是否會遇到任何問題? HANDLE thread =(HANDLE)_beginthread(checkThread,0,& thrVal);
3)是否有必要將所有的_beginthread調用轉換爲_beginthreadex?
當您回答「uintptr_t」是否可以保存「HANDLE」值時,您沒有仔細閱讀文檔。您的建議與文檔有衝突。 – IInspectable
@IInspectable:你無法在'HANDLE'上等待的原因並不是因爲它不是'HANDLE',而是因爲它可能已經從你下面被關閉了。只要線程正在運行,它仍然是一個有效的'HANDLE'。 –
我完全理解它爲什麼不安全。你仍然不應該說「是的!」回答問題是否安全,一般情況不是。儘管如此,你並沒有說要無條件地使用返回值,就像你從_beginthreadex返回的值一樣,但是提供了有用的理由。 – IInspectable