并发可视化工具 SDK

可以通过使用并发可视化工具 SDK 并发可视化工具中显示的其他信息来对源代码进行检测。 在代码中,您可以与阶段和事件关联的其他数据。 这些附加的可视化效果称为标记。 介绍性演练中,请参阅引入并发可视化工具 SDK

属性

标志、 范围,以及每个有两个属性的消息: 类别和重要性。 在高级设置对话框中,您可以使用这些属性进行筛选所显示的标记的集合。 此外,这些属性会影响标记的可视化表示形式。 例如,大小的标志用来表示重要性。 此外,颜色用于指示类别。

基本用法

并发可视化工具提供了可用于生成标记的默认提供程序。 已注册提供程序与并发可视化工具一起使用,您不必执行任何其他使用户界面中显示的标记操作。

Hh543789.collapse_all(zh-cn,VS.110).gifC# 和 Visual Basic

在 C#,Visual basic 中和其他托管的代码中,使用默认的提供程序,通过调用Markers。 它提供了四个函数来生成标记: WriteFlagEnterSpanWriteMessage,和WriteAlert。 有多个重载,这些函数,具体取决于是否要使用这些属性的默认值。 最简单的重载采用指定事件的描述字符串参数。 并发可视化工具报告中显示的说明。

向 C# 或 Visual Basic 的项目添加 SDK 支持

  1. 在菜单栏中,选择分析并发可视化工具添加到项目的 SDK

  2. 选择要用来访问 SDK,然后选择的项目添加到选定项目的 SDK 按钮。

  3. 添加导入或使用您的代码语句。

    using Microsoft.ConcurrencyVisualizer.Instrumentation;
    
    Imports Microsoft.ConcurrencyVisualizer.Instrumentation
    

Hh543789.collapse_all(zh-cn,VS.110).gifC++

在 C++ 中,创建marker_series 类对象,并将其用于调用的函数。 marker_series类公开用于生成标记,这三个函数marker_series::write_flag 方法marker_series::write_message 方法,和marker_series::write_alert 方法

添加 SDK 支持 C++ 或 C 项目

  1. 在菜单栏中,选择分析并发可视化工具添加到项目的 SDK

  2. 选择要用来访问 SDK,然后选择的项目添加到选定项目的 SDK 按钮。

  3. 对于 C++,包括cvmarkersobj.h。 对于 C,包括cvmarkers.h。

  4. 使用添加到您的代码语句。

    using namespace Concurrency::diagnostic;
    
  5. 创建marker_series对象,并将它以传递span构造函数。

    marker_series mySeries;
    span s(mySeries, _T("Span description"));
    

自定义的使用

对于高级方案,并发可视化工具 SDK 提供了更多的控制。 两个主要概念是与更高级的方案相关联: 标记提供程序和标记的系列。 标记提供程序都是不同的 ETW 提供程序 (每个都有不同的 GUID)。 标记系列是串行通道的一个提供程序生成的事件。 您可以使用它们来组织的标记提供程序生成的事件。

在 C# 或 Visual Basic 项目中使用新的标记提供程序

  1. 创建 MarkerWriter 对象。 构造函数采用一个 GUID。

  2. 要注册的提供程序,请打开并发可视化工具高级设置对话框。 选择标记 选项卡,然后选择 中添加新的提供商按钮。 在高级设置对话框框中,输入用于创建提供程序和提供程序的说明的 GUID。

在 C++ 或 C 项目中使用新的标记提供程序

  1. 使用CvInitProvider PCV_PROVIDER 的初始化函数。 构造函数采用一个 GUID * 和 PCV_PROVIDER *。

  2. 若要注册的提供程序,请打开高级设置对话框。 选择标记 选项卡,然后选择 中添加新的提供商按钮。 在此对话框中,输入用于创建提供程序和提供程序的说明的 GUID。

在 C# 或 Visual Basic 项目中使用标记系列

  • 若要使用新的MarkerSeries,第一次使用创建它MarkerWriter对象,然后直接从新的系列生成标记事件。

    MarkerSeries series1 = myMarkerWriter.CreateMarkerSeries(″Series 1″);
    series1.WriteFlag(″My flag″);
    
    Dim series1 As New myMarkerWriter.CreateMarkerSeries(″Series 1″)
    series1.WriteFlag(″My flag″)
    

在 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"));
    

相关主题

标题

说明

C++ 库参考

说明 C++ API 并发可视化工具。

C 库参考

描述并发可视化工具 API 为 c。

Microsoft.ConcurrencyVisualizer.Instrumentation

描述托管代码的并发可视化工具 API。

并发可视化工具

针对使用并发方法生成的且包括线程执行数据的分析数据文件,提供有关视图和报告的参考信息。