共用方式為


HOW TO:使用執行緒視窗

更新:2007 年 11 月

這個主題適用於:

版本

Visual Basic

C#

C++

Web Developer

Express 版

標題不適用於 標題不適用於 標題不適用於 標題不適用於

Standard 版

標題適用於 標題適用於 標題適用於 標題適用於

Pro/Team 版

標題適用於 標題適用於 標題適用於 標題適用於

表格圖例:

標題適用於

套用

標題不適用於

不套用

預設會套用主題但隱藏命令

預設隱藏的命令。

您可以使用 [執行緒] 視窗檢查和管理正在偵錯之程式中的執行緒。

[執行緒] 視窗包含目前存在於您程式中的所有執行緒的清單。這份清單會提供每個執行緒的某些有用資訊:

  • [名稱] 和 [ID] 欄顯示執行緒名稱和識別碼,協助您識別執行緒。

  • [優先權] 欄顯示系統指派給每個執行緒的優先權或優先順序。

  • [暫止] 欄顯示暫停次數 (Suspend Count),這個數字決定執行緒目前是否可以執行。如需暫停次數的說明,請參閱本主題的「凍結和解除凍結執行緒」一節。

  • [分類] 欄會將執行緒分類為使用者介面執行緒、遠端程序呼叫處理常式或背景工作執行緒 (Worker Thread)。此欄也識別主執行緒。

  • [位置] 欄顯示建立執行緒的來源位置。

  • 旗標欄未加上標籤,並位在最左邊。當您將想要研究的執行緒加上旗標時,這欄中會出現旗標圖示。如需如何將執行緒加上旗標的指示,請參閱 HOW TO:將執行緒加上旗標和取消旗標

  • 最後,還有一欄未加上標籤,就是左邊算來第二欄。這是使用中執行緒欄。如果這欄中有黃色箭號,表示是使用中執行緒。

若要在中斷模式或執行模式顯示執行序視窗

  • 在 [偵錯] 功能表上,指向 [視窗],然後按一下 [執行緒]。

若要排序執行緒清單

  1. 在 [執行緒] 視窗中,按一下任意欄頂端的按鈕。

    • 若要排序成讓加上旗標的執行緒出現在清單頂端,請按一下最左邊的按鈕。

    • 若要排序成讓使用中的執行緒出現在清單頂端,請按一下左邊的第二個按鈕。

    • 若要排序成讓具有最小 ID 編號的執行緒出現在頂端,請按一下 [ID] 按鈕。

    • 若要依執行緒分類排序,請按一下 [分類] 按鈕。這樣會依功能分類的字母順序排序執行緒。

    • 若要依執行緒名稱排序,請按一下 [名稱] 按鈕。

    • 若要依執行緒來源位置排序,請按一下 [位置] 按鈕。

    • 若要排序成讓優先權最高的執行緒出現在頂端,請按一下 [優先權] 按鈕。

    • 若要排序成讓具有最小暫停次數的執行緒出現在頂端,請按一下 [暫止] 按鈕。

  2. 如果想要反轉排序次序,請再按一下相同按鈕。例如,如果依執行緒 ID 編號排序,則具有最小 ID 編號的執行緒會排在頂端。如果再按一下 [ID] 按鈕,則具有最大 ID 編號的執行緒會出現在頂端。

若要將偵錯內容切換至另一個執行緒

  • 在 [執行緒] 視窗中,以滑鼠右鍵按一下執行緒,然後在快速鍵功能表中選擇 [切換至執行緒]。

    -或-

  • 按兩下任一執行緒。

    黃色的箭頭將會標示出使用中的執行緒。

凍結和解除凍結執行緒

您可以凍結和解除凍結執行緒。當執行緒遭到凍結時,即使有可用的資源,系統也不會開始執行執行緒。

在機器碼中,呼叫 SuspendThread 和 ResumeThread Windows 函式或是 CWinThread::SuspendThreadCWinThread::ResumeThread MFC 函式,就可以暫止或繼續執行緒。呼叫 SuspendThread 或 ResumeThread,會變更 [執行緒] 視窗中顯示的「暫停次數」(Suspend Count)。然而,凍結或解除凍結原生執行緒並不會變更暫停次數。在機器碼中,除非將執行緒解除凍結,而且執行緒的暫停次數為零,否則執行緒無法執行。

在 Managed 程式碼中,凍結或解除凍結執行緒並不會變更暫停次數。在 Managed 程式碼中,凍結之執行緒的暫停次數為 1。而在機器碼中,除非透過 SuspendThread 呼叫將執行緒暫止,否則凍結之執行緒的暫停次數為 0。

注意事項:

當您在偵錯機器碼對 Managed 程式碼的呼叫時,Managed 程式碼與呼叫它的機器碼會在相同的實體執行緒中執行。暫止或凍結原生執行緒,也會凍結 Managed 程式碼。

若要凍結執行緒的執行

  • 在 [執行緒] 視窗中,以滑鼠右鍵按一下執行緒,然後選擇快速鍵功能表中的 [凍結]。

若要解除凍結執行緒的執行

  • 在 [執行緒] 視窗中,以滑鼠右鍵按一下凍結的執行緒,然後選擇快速鍵功能表中的 [解除凍結]。

顯示執行緒呼叫堆疊以及切換框架

在多執行緒程式中,每個執行緒都會有它自己的呼叫堆疊。[執行緒] 視窗則提供便利的方式來檢視執行緒呼叫堆疊。

若要檢視執行緒的呼叫堆疊

  • 在 [執行緒] 視窗中,將滑鼠指標放在使用中執行緒欄中,與想要研究的執行緒對應的那一行上。

    稍等一下,資料提示方塊就會出現。這樣會顯示執行緒的呼叫堆疊。

請參閱

工作

逐步解說:偵錯多執行緒應用程式

其他資源

偵錯多執行緒應用程式