我覺得這有一個明顯的答案,但它一直在逃避我。我在C++中有一些遺留代碼,當它嘗試調用OpenThread()時會中斷它。我在Visual C++ 2008 Express Edition中運行它。程序首先獲取調用線程的ThreadID並嘗試打開它,如下所示:OpenThread()返回NULL Win32
ThreadId threadId = IsThreaded()? thread_id::: GetCurrentThreadId();
HANDLE threadHandle = OpenThread(THREAD_ALL_ACCESS,FALSE,threadId);
現在這裏是我不明白的:如果線程ID是當前線程的ID,是不是已經打開?那可能是爲什麼它返回NULL?
任何反饋將不勝感激。
ThREAD_ALL_ACCESS顯然是問題所在。我使用了THREAD_SET_INFORMATION,它做到了。非常感謝! – RCC 2009-07-01 15:53:30