我在vs 2008中調試程序。 有一個帶線程ID的線程列表。 我可以使用任何方式或工具來識別給定線程ID的父線程嗎? 謝謝。如何知道誰是給定線程ID的父線程
回答
沒有API,至少標準和記錄,以獲得給定線程的創建者線程ID。性能監視器,Visual Studio IDE,Process Explorer或Spy ++都不提供此信息。一旦開始,線程不再依賴於其創建者並且獨立運行;沒有特別的親子關係。
我認爲Spy ++(它叫做spyxx.exe,位於我的機器上的C:\ Program Files文件(x86)\ Microsoft Visual Studio 9.0 \ Common7 \ Tools)會提供這樣的信息,但它很難,但是我確保sys內部做了更好的過程信息版本
嘗試該工具 - 沒有找到任何關於給定線程的父項的信息。 – Sanich
您是在尋找編程方式還是外部工具?如果後面有 ,請嘗試processExplorer。你可以從MS免費下載它,它給你的線程線程層次加上很多其他很酷的東西。
需要知道父THREAD不是父進程:) – Sanich
我不認爲你可以做到這一點,但我不能給你很好的解釋爲什麼。從來沒有聽說過它可能。我看着Process Explorer,它只能給你起始地址,但我懷疑你可以從中推導出父線程的ID。
如果你需要在你的應用程序中這樣做,那麼它應該不是很難實現,也許甚至可以掛鉤系統功能來做到這一點,但如果SysInternals沒有這樣做,那麼也許這是不可能的。
- 1. 如何知道是誰開始線程
- 2. 如何獲得知道線程ID的消息線程URL?
- 3. 我如何知道線程ID爲PDH的線程名稱
- 4. 如何知道這個線程是否是一個UI線程
- 5. 如何知道誰殺了我的線程
- 6. Python線程 - 如何知道線程是否已在運行?
- 7. 如何通過知道線程ID來獲取線程的名稱?
- 8. 知道線程數
- 9. UI線程如何知道另一個線程上的數據?
- 10. 子線程退出時如何通知父線程
- 11. 如何通知父線程所有子線程都已終止?
- 12. 如何知道何時殺死線程?
- 13. 如何知道界面窗口的id線程?
- 14. 如何知道誰在Facebook上誰在線
- 15. 如何知道所有線程池的線程是否已完成其任務?
- 16. 如何知道線程已完成
- 17. 如何知道線程開始
- 18. 有誰知道使用Xcode的在線Java教程?
- 19. 如何知道傳遞給線程的信號
- 20. 知道線程目標C
- 21. 不知道在主線程:(
- 22. 誰在完成後通知線程?
- 23. 如何知道nuget工具是否是線程安全的(.NET)?
- 24. 如何知道誰是FirstResponder?
- 25. 如何從子線程或其他線程獲取父線程?
- 26. 如何知道是否有活動的線程?
- 27. 在給定線程ID的情況下在特定線程上運行方法
- 28. 有誰知道如何使用兩個線程逐個處理一個集合?
- 29. 知道線程何時完成
- 30. 誰中斷我的線程?
是的,我知道沒有父子關係。只是想,也許有一個工具正在進行一些監控,並保存了線程創建及其父項的記錄。 – Sanich
[THREAD_BASIC_INFORMATION](http://undocumented.ntinternals.net/UserMode/Structures/THREAD_BASIC_INFORMATION.html) - 這就是你所有的,甚至沒有記錄。 –