2014-01-06 78 views

回答

1

沒有API,至少標準和記錄,以獲得給定線程的創建者線程ID。性能監視器,Visual Studio IDE,Process Explorer或Spy ++都不提供此信息。一旦開始,線程不再依賴於其創建者並且獨立運行;沒有特別的親子關係。

+0

是的,我知道沒有父子關係。只是想,也許有一個工具正在進行一些監控,並保存了線程創建及其父項的記錄。 – Sanich

+0

[THREAD_BASIC_INFORMATION](http://undocumented.ntinternals.net/UserMode/Structures/THREAD_BASIC_INFORMATION.html) - 這就是你所有的,甚至沒有記錄。 –

0

我認爲Spy ++(它叫做spyxx.exe,位於我的機器上的C:\ Program Files文件(x86)\ Microsoft Visual Studio 9.0 \ Common7 \ Tools)會提供這樣的信息,但它很難,但是我確保sys內部做了更好的過程信息版本

+0

嘗試該工具 - 沒有找到任何關於給定線程的父項的信息。 – Sanich

0

您是在尋找編程方式還是外部工具?如果後面有 ,請嘗試processExplorer。你可以從MS免費下載它,它給你的線程線程層次加上很多其他很酷的東西。

+0

需要知道父THREAD不是父進程:) – Sanich

1

我不認爲你可以做到這一點,但我不能給你很好的解釋爲什麼。從來沒有聽說過它可能。我看着Process Explorer,它只能給你起始地址,但我懷疑你可以從中推導出父線程的ID。

如果你需要在你的應用程序中這樣做,那麼它應該不是很難實現,也許甚至可以掛鉤系統功能來做到這一點,但如果SysInternals沒有這樣做,那麼也許這是不可能的。