您可以使用並行視覺化工具 SDK 來檢測原始程式碼,以在並行視覺化工具中顯示其他資訊。 您可以將其他資料與程式碼中的階段和事件建立關聯。 這些額外的視覺化稱為 標記。 如需導覽介紹,請參閱 並行視覺化工具 SDK 的介紹。
屬性
旗標、範圍和訊息都有兩個屬性:類別和重要性。 在「 進階設定 」對話方塊中,您可以使用這些內容來篩選顯示的標記集。 此外,這些屬性會影響標記的視覺表示。 例如,旗標的大小用於表示重要性。 此外,顏色用於指示類別。
基本用法
並行視覺化工具會公開預設提供者,可用來產生標記。 提供者已與並行視覺化工具一起註冊,您不需要執行任何其他動作,即可讓標記出現在 UI 中。
C# 和 Visual Basic
在 C#、Visual Basic 和其他 Managed 程式碼中,呼叫 Markers 類別中的方法,以使用預設提供者。 它公開了四種產生標記的方法: WriteFlag、 EnterSpan、 WriteMessage 和 WriteAlert。 這些函式有多個參數重載,取決於您是否想對屬性使用預設值。 最簡單的多載只會採用指定事件描述的字串參數。 描述會顯示在 Concurrency Visualizer 報告中。
將 SDK 支援新增至 C# 或 Visual Basic 專案
在功能表列上,選擇 分析(Analyze)、並行視覺化工具(Concurrency Visualizer)、將 SDK 新增至專案(Add SDK to project)。
選取您要存取 SDK 的專案,然後選擇 Add SDK to Selected Project 按鈕。
將 imports 或 using 陳述式新增至您的程式碼。
C++
在 C++ 中,建立一個 marker_series Class 物件並使用它來呼叫函數。 該 marker_series 類別公開了三個用於產生標記的函數: marker_series::write_flag 方法、 marker_series::write_message 方法和 marker_series::write_alert 方法。
將 SDK 支援新增至 C++ 或 C 專案
在功能表列上,選擇 Analyze(分析)、Concurrency Visualizer(並行分析工具)、將 SDK 新增至專案。
選取您要存取 SDK 的專案,然後選擇 Add SDK to Selected Project 按鈕。
對於 C++,請包含
cvmarkersobj.h. 對於 C,請包括cvmarkers.h。在程式碼中加入 using 語句。
using namespace Concurrency::diagnostic;建立物件
marker_series並將其傳遞給span建構函式。marker_series mySeries; span s(mySeries, _T("Span description"));
自訂用法
針對進階案例,並行視覺化工具 SDK 會公開更多控制權。 兩個主要概念與更進階的案例相關聯:標記提供者和標記系列。 標記提供者是不同的 ETW 提供者 (每個提供者都有不同的 GUID) 。 標記系列是由一個提供者所產生的事件序列通道。 您可以使用它們來組織標記提供者所產生的事件。
在 C# 或 Visual Basic 專案中使用新的標記提供者
建立 MarkerWriter 物件。 建構函式會採用 GUID。
若要註冊提供者,請開啟 [並行視覺化工具 進階設定 ] 對話方塊。 選取 [標記] 索引標籤,然後選擇 [ 新增提供者 ] 按鈕。 在 [ 進階設定 ] 對話方塊中,輸入用來建立提供者的 GUID 和提供者的描述。
在 C++ 或 C 專案中使用新的標記提供者
使用函數
CvInitProvider來初始化PCV_PROVIDER。 建構函式會採用 GUID* 和 PCV_PROVIDER*。若要註冊提供者,請開啟 [ 進階設定 ] 對話方塊。 選取 [標記] 索引標籤,然後選擇 [ 新增提供者 ] 按鈕。 在此對話方塊中,輸入用來建立提供者的 GUID 和提供者的描述。
在 C# 或 Visual Basic 專案中使用標記數列
若要使用新的 MarkerSeries,請先使用 MarkerWriter 物件建立它,然後直接從新數列產生標記事件。
在 C++ 專案中使用標記數列
建立
marker_series物件。 您可以從這個新系列產生事件。marker_series series; series.write_flag(_T("Hello world!"));
在 C 專案中使用標記數列
使用函數
CvCreateMarkerSeries建立PCV_MARKERSERIES。PCV_MARKERSERIES series; CvCreatemarkerSeries(myProvider, _T("My Series"), &series); CvWriteFlag(series, _T("Writing a flag"));
另請參閱
| Title | Description |
|---|---|
| C++ 程式庫參考 | 描述適用於 C++ 的並行視覺化工具 API。 |
| C 函式庫參考 | 描述適用於 C 的並行視覺化工具 API。 |
| 儀器儀表 | 描述 Managed 程式碼的並行視覺化工具 API。 |
| 並行視覺化工具 | 使用並行方法產生且包含執行緒執行資料的分析資料檔案檢視和報告的參考資訊。 |