我目前正在嘗試查看我在 C# 應用程式中創建的執行緒發生了什么。該執行緒是一種型別System.Threading.Thread并且嵌入在一個內部物件中(并且在除錯時我可以訪問該物件中的執行緒)。
我正在使用“ Process Explorer ”檢查應用程式。
Process Explorer 有一個“Threads”選項卡,其中包含“TID”、“CPU”、“Cycles Delta”、“Suspend Count”和“Start Address”列。
為了識別我啟動的執行緒(在除錯器中),我相信我可以查找 TID(執行緒 ID)或起始地址,我認為執行緒 ID 是最清晰的。
但是,乍一看,我在類中沒有看到任何System.Threading.Thread看起來像執行緒 ID 的屬性/欄位/屬性。
有人知道哪個屬性/屬性/欄位System.Threading.Thread與 Process Explorer 的 TID 列對應嗎?
編輯:似乎有一個,ManagedThreadId但并非如此。
uj5u.com熱心網友回復:
本質上,托管執行緒不是本地執行緒,在任務管理器中尋找相關性是不合適的。有關更多資訊,請參閱CLR 執行緒概述 - 托管執行緒與本機執行緒
托管代碼在“托管執行緒”上執行,這與作業系統提供的本機執行緒不同。本機執行緒是在物理機上執行本機代碼的執行緒;托管執行緒是在 CLR 的虛擬機上執行的虛擬執行緒。
...
但是,如果您使用的是 Visual Studio,則可以使用執行緒視窗來除錯托管執行緒。
使用“執行緒”視窗(C#、Visual Basic、C )查看 Visual Studio 除錯器中的執行緒
多個 Visual Studio 用戶界面元素可幫助您除錯多執行緒應用程式。本文介紹了代碼編輯器視窗、除錯位置工具列和執行緒視窗中的多執行緒除錯功能
演練:使用“執行緒”視窗(C#、Visual Basic、C )除錯多執行緒應用程式
Visual Studio 提供了多種工具和用戶界面元素來幫助您除錯多執行緒應用程式。本教程展示了如何使用執行緒標記、并行堆疊視窗、并行觀察視窗、條件斷點和過濾斷點。完成本教程將使您熟悉用于除錯多執行緒應用程式的 Visual Studio 功能。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/318754.html
