SDK del visualizzatore di concorrenzaConcurrency Visualizer SDK

Con l'SDK del visualizzatore di concorrenza è possibile instrumentare il codice sorgente in modo che nel visualizzatore di concorrenza siano visualizzate informazioni aggiuntive.You can instrument your source code by using the Concurrency Visualizer SDK to display additional information in the Concurrency Visualizer. È possibile associare i dati aggiuntivi a fasi ed eventi nel codice.You can associate the additional data with phases and events in your code. Queste visualizzazioni aggiuntive sono note come marcatori.These additional visualizations are known as markers. Per una procedura dettagliata introduttiva, vedere Introducing the Concurrency Visualizer SDK.(Introduzione all'SDK del visualizzatore di concorrenza).For an introductory walkthrough, see Introducing the Concurrency Visualizer SDK.

ProprietàProperties

Flag, span e messaggi hanno due proprietà: categoria e importanza.Flags, spans, and messages each have two properties: category and importance. Nella finestra di dialogo Impostazioni avanzate è possibile usare queste proprietà per filtrare il set di marcatori visualizzati.In the Advanced Settings dialog box, you can use these properties to filter the set of markers that are displayed. Queste proprietà influiscono anche sulla rappresentazione visiva dei marcatori.In addition, these properties affect the visual representation of markers. Ad esempio, l'importanza è rappresentata dalla dimensione dei flag,For example, the size of flags is used to represent importance. mentre il colore viene usato per indicare la categoria.In addition, color is used to indicate category.

Utilizzo di baseBasic usage

Il visualizzatore di concorrenza espone un provider predefinito che è possibile usare per generare i marcatori.The Concurrency Visualizer exposes a default provider that you can use to generate markers. Il provider è già registrato nel visualizzatore di concorrenza e non è necessario eseguire altre operazioni per visualizzare i marcatori nell'interfaccia utente.The provider is already registered together with the Concurrency Visualizer and you don't have to do anything else to make the markers appear in the UI.

C# e Visual BasicC# and Visual Basic

In C#, Visual Basic e altro codice gestito usare il provider predefinito chiamando i metodi nella classe Markers.In C#, Visual basic, and other managed code, use the default provider by calling methods in the Markers class. Espone quattro metodi per la generazione di marcatori: WriteFlag, EnterSpan, WriteMessagee WriteAlert.It exposes four methods for generating markers: WriteFlag, EnterSpan, WriteMessage, and WriteAlert. Sono disponibili più overload per queste funzioni, a seconda che si voglia o meno usare le impostazioni predefinite per le proprietà.There are multiple overloads for these functions, depending on whether you want to use defaults for the properties. L'overload più semplice accetta solo un parametro di stringa che specifica la descrizione dell'evento.The simplest overload takes only a string parameter that specifies the description of the event. La descrizione viene visualizzata nei rapporti del visualizzatore di concorrenza.The description is displayed in the Concurrency Visualizer reports.

Per aggiungere un SDK a un progetto C# o Visual BasicTo add SDK support to a C# or Visual Basic project
  1. Nella barra dei menu scegliere Analizza, Visualizzatore di concorrenza, Aggiungi SDK al progetto.On the menu bar, choose Analyze, Concurrency Visualizer, Add SDK to project.

  2. Scegliere il progetto in cui si vuole aggiungere l'SDK e selezionare il pulsante Aggiungi SDK al progetto selezionato.Select the project in which you want to access the SDK and then choose the Add SDK to Selected Project button.

  3. Aggiungere un'istruzione imports o using al codice.Add an imports or using statement to your code.

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

C++C++

In C++ creare un oggetto classe marker_series e usarlo per chiamare le funzioni.In C++, create a marker_series Class object and use it to call functions. La classe marker_series espone tre funzioni per la generazione di indicatori: marker_series::write_flag Method, marker_series::write_message Method e marker_series::write_alert Method.The marker_series class exposes three functions for generating markers, the marker_series::write_flag Method, the marker_series::write_message Method, and the marker_series::write_alert Method.

Per aggiungere un SDK a un progetto C++ o CTo add SDK support to a C++ or C project
  1. Nella barra dei menu scegliere Analizza, Visualizzatore di concorrenza, Aggiungi SDK al progetto.On the menu bar, choose Analyze, Concurrency Visualizer, Add SDK to project.

  2. Scegliere il progetto in cui si vuole aggiungere l'SDK e selezionare il pulsante Aggiungi SDK al progetto selezionato.Select the project in which you want to access the SDK and then choose the Add SDK to Selected Project button.

  3. Per C++, includere cvmarkersobj.h.For C++, include cvmarkersobj.h. Per C, includere cvmarkers.h.For C, include cvmarkers.h.

  4. Aggiungere un'istruzione using al codice.Add a using statement to your code.

    using namespace Concurrency::diagnostic;
    
  5. Creare un oggetto marker_series e passarlo al costruttore span.Create a marker_series object and pass it to the span constructor.

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

Utilizzo personalizzatoCustom usage

Per gli scenari avanzati, l'SDK del visualizzatore di concorrenza espone maggiore controllo.For advanced scenarios, the Concurrency Visualizer SDK exposes more control. A scenari più avanzati sono associati due concetti principali: provider marcatori e serie di marcatori.Two main concepts are associated with more advanced scenarios: marker providers and marker series. I provider marcatori sono provider ETW diversi, ognuno dei quali ha un GUID specifico.Marker providers are different ETW providers (each has a different GUID). Le serie di marcatori sono canali di eventi seriali generati da un provider,Marker series are serial channels of events that are generated by one provider. che possono essere usate per organizzare gli eventi generati da un provider marcatori.You can use them to organize the events that are generated by a marker provider.

Per usare un nuovo provider marcatori in un progetto C# o Visual BasicTo use a new marker provider in a C# or Visual Basic project

  1. Creare un oggetto MarkerWriter.Create a MarkerWriter object. Il costruttore accetta un GUID.The constructor takes a GUID.

  2. Per registrare il provider, aprire la finestra di dialogo Impostazioni avanzate del visualizzatore di concorrenza.To register the provider, open the Concurrency Visualizer Advanced Settings dialog box. Selezionare la scheda Marcatori e selezionare il pulsante Aggiungi nuovo provider.Select the Markers tab and then choose the Add New Provider button. Nella finestra di dialogo Impostazioni avanzate immettere il GUID usato per creare il provider e una descrizione del provider.In the Advanced Settings dialog box, enter the GUID that was used to create the provider and a description of the provider.

Per usare un nuovo provider marcatori in un progetto C++ o CTo use a new marker provider in a C++ or C project

  1. Usare la funzione CvInitProvider per inizializzare un PCV_PROVIDER.Use the CvInitProvider function to initialize a PCV_PROVIDER. Il costruttore accetta un GUID* e PCV_PROVIDER*.The constructor takes a GUID* and PCV_PROVIDER*.

  2. Per registrare il provider, aprire la finestra di dialogo Impostazioni avanzate.To register the provider, open the Advanced Settings dialog box. Selezionare la scheda Marcatori e selezionare il pulsante Aggiungi nuovo provider.Select the Markers tab and then choose the Add New Provider button. Nella finestra di dialogo immettere il GUID usato per creare il provider e una descrizione del provider.In this dialog box, enter the GUID that was used to create the provider and a description of the provider.

Per usare una serie di marcatori in un progetto C# o Visual BasicTo use a marker series in a C# or Visual Basic project

  1. Per usare un nuovo oggetto MarkerSeries, è necessario prima crearlo tramite un oggetto MarkerWriter. A questo punto è possibile generare gli eventi marcatori direttamente dalla nuova serie.To use a new MarkerSeries, first create it by using a MarkerWriter object, and then generate marker events directly from the new series.

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

Per usare una serie di marcatori in un progetto C++To use a marker series in a C++ project

  1. Creare un oggetto marker_series.Create a marker_series object. Gli eventi possono essere generati da questa serie nuova.You can generate events from this new series.

    marker_series series;
    series.write_flag(_T("Hello world!"));
    

Per usare una serie di marcatori in un progetto CTo use a marker series in a C project

  1. Usare la funzione CvCreateMarkerSeries per creare PCV_MARKERSERIES.Use the CvCreateMarkerSeries function to create a PCV_MARKERSERIES.

    PCV_MARKERSERIES series;
    CvCreatemarkerSeries(myProvider, _T("My Series"), &series);
    CvWriteFlag(series, _T("Writing a flag"));
    

Vedere ancheSee also

TitoloTitle DescrizioneDescription
Riferimento alla libreria C++C++ library reference Viene descritta l'API del visualizzatore di concorrenza per C++.Describes the Concurrency Visualizer API for C++.
Riferimento alla libreria CC library reference Viene descritta l'API del visualizzatore di concorrenza per C.Describes the Concurrency Visualizer API for C.
StrumentazioneInstrumentation Viene descritta l'API del visualizzatore di concorrenza per il codice gestito.Describes the Concurrency Visualizer API for managed code.
Visualizzatore di concorrenzeConcurrency Visualizer Informazioni di riferimento sulle visualizzazioni e sui rapporti dei file di dati di profilatura che sono generati tramite il metodo di concorrenza e che includono dati di esecuzione thread.Reference information for the views and reports of profiling data files that are generated by using the concurrency method and that include thread execution data.