SDK del visualizzatore di concorrenza

Con l'SDK del visualizzatore di concorrenza è possibile instrumentare il codice sorgente in modo che nel visualizzatore di concorrenza siano visualizzate informazioni aggiuntive. È possibile associare i dati aggiuntivi a fasi ed eventi nel codice. Queste visualizzazioni aggiuntive sono note come marcatori. Per una procedura dettagliata introduttiva, vedere Introducing the Concurrency Visualizer SDK.(Introduzione all'SDK del visualizzatore di concorrenza).

Proprietà

Flag, span e messaggi hanno due proprietà: categoria e importanza. Nella finestra di dialogo Impostazioni avanzate è possibile usare queste proprietà per filtrare il set di marcatori visualizzati. Queste proprietà influiscono anche sulla rappresentazione visiva dei marcatori. Ad esempio, l'importanza è rappresentata dalla dimensione dei flag, mentre il colore viene usato per indicare la categoria.

Utilizzo di base

Il visualizzatore di concorrenza espone un provider predefinito che è possibile usare per generare i marcatori. Il provider è già registrato nel visualizzatore di concorrenza e non è necessario eseguire altre operazioni per visualizzare i marcatori nell'interfaccia utente.

C# r Visual Basic

In C#, Visual Basic e altro codice gestito usare il provider predefinito chiamando i metodi nella classe Markers. Espone quattro metodi per la generazione di marcatori: WriteFlag, EnterSpan, WriteMessage e WriteAlert. Sono disponibili più overload per queste funzioni, a seconda che si voglia o meno usare le impostazioni predefinite per le proprietà. L'overload più semplice accetta solo un parametro di stringa che specifica la descrizione dell'evento. La descrizione viene visualizzata nei rapporti del visualizzatore di concorrenza.

Per aggiungere un SDK a un progetto C# o Visual Basic
  1. Nella barra dei menu scegliere Analizza, Visualizzatore di concorrenza, Aggiungi SDK al progetto.

  2. Scegliere il progetto in cui si vuole aggiungere l'SDK e selezionare il pulsante Aggiungi SDK al progetto selezionato.

  3. Aggiungere un'istruzione imports o using al codice.

    using Microsoft.ConcurrencyVisualizer.Instrumentation;
    

C++

In C++ creare un oggetto classe marker_series e usarlo per chiamare le funzioni. 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.

Per aggiungere un SDK a un progetto C++ o C
  1. Nella barra dei menu scegliere Analizza, Visualizzatore di concorrenza, Aggiungi SDK al progetto.

  2. Scegliere il progetto in cui si vuole aggiungere l'SDK e selezionare il pulsante Aggiungi SDK al progetto selezionato.

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

  4. Aggiungere un'istruzione using al codice.

    using namespace Concurrency::diagnostic;
    
  5. Creare un oggetto marker_series e passarlo al costruttore span.

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

Utilizzo personalizzato

Per gli scenari avanzati, l'SDK del visualizzatore di concorrenza espone maggiore controllo. A scenari più avanzati sono associati due concetti principali: provider marcatori e serie di marcatori. I provider marcatori sono provider ETW diversi, ognuno dei quali ha un GUID specifico. Le serie di marcatori sono canali di eventi seriali generati da un provider, che possono essere usate per organizzare gli eventi generati da un provider marcatori.

Per usare un nuovo provider marcatori in un progetto C# o Visual Basic

  1. Creare un oggetto MarkerWriter. Il costruttore accetta un GUID.

  2. Per registrare il provider, aprire la finestra di dialogo Impostazioni avanzate del visualizzatore di concorrenza. Selezionare la scheda Marcatori e selezionare il pulsante Aggiungi nuovo provider. Nella finestra di dialogo Impostazioni avanzate immettere il GUID usato per creare il provider e una descrizione del provider.

Per usare un nuovo provider marcatori in un progetto C++ o C

  1. Usare la funzione CvInitProvider per inizializzare un PCV_PROVIDER. Il costruttore accetta un GUID* e PCV_PROVIDER*.

  2. Per registrare il provider, aprire la finestra di dialogo Impostazioni avanzate. Selezionare la scheda Marcatori e selezionare il pulsante Aggiungi nuovo provider. Nella finestra di dialogo immettere il GUID usato per creare il provider e una descrizione del provider.

Per usare una serie di marcatori in un progetto C# o Visual Basic

  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.

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

Per usare una serie di marcatori in un progetto C++

  1. Creare un oggetto marker_series. Gli eventi possono essere generati da questa serie nuova.

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

Per usare una serie di marcatori in un progetto C

  1. Usare la funzione CvCreateMarkerSeries per creare PCV_MARKERSERIES.

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

Vedi anche

Posizione Descrizione
Riferimento alla libreria C++ Viene descritta l'API del visualizzatore di concorrenza per C++.
Riferimento alla libreria C Viene descritta l'API del visualizzatore di concorrenza per C.
Strumentazione Viene descritta l'API del visualizzatore di concorrenza per il codice gestito.
Visualizzatore di concorrenza Informazioni di riferimento per le visualizzazioni e i rapporti dei file di dati di profilatura generati tramite il metodo di concorrenza che includono dati di esecuzione di thread.