Condividi tramite


SDK del visualizzatore di concorrenza

È possibile instrumentare il codice sorgente usando l'SDK del visualizzatore di concorrenza per visualizzare informazioni aggiuntive nel visualizzatore di concorrenza. È possibile associare i dati aggiuntivi alle fasi e agli eventi nel codice. Queste visualizzazioni aggiuntive sono note come marcatori. Per una procedura dettagliata introduttiva, vedere Introduzione all'SDK del visualizzatore di concorrenza.

Proprietà

I flag, gli intervalli e i messaggi hanno ognuna due proprietà: categoria e importanza. Nella finestra di dialogo Impostazioni avanzate è possibile usare queste proprietà per filtrare il set di marcatori visualizzati. Inoltre, queste proprietà influiscono sulla rappresentazione visiva dei marcatori. Ad esempio, la dimensione dei flag viene usata per rappresentare l'importanza. Inoltre, il colore viene usato per indicare la categoria.

Utilizzo di base

Il visualizzatore di concorrenza espone un provider predefinito che è possibile usare per generare marcatori. Il provider è già registrato insieme al visualizzatore di concorrenza e non è necessario eseguire altre operazioni per visualizzare gli indicatori 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. Esistono diverse versioni sovraccaricate per queste funzioni, in base all'uso di valori predefiniti per le proprietà. L'overload più semplice accetta solo un parametro stringa che specifica la descrizione dell'evento. La descrizione viene visualizzata nei report del visualizzatore di concorrenza.

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

  2. Selezionare il progetto in cui si vuole accedere all'SDK e quindi scegliere il pulsante Aggiungi SDK a progetto selezionato .

  3. Aggiungere un'istruzione di importazione o di utilizzo al codice.

    using Microsoft.ConcurrencyVisualizer.Instrumentation;
    

C++

In C++, creare un oggetto Class marker_series e usarlo per chiamare le funzioni. La marker_series classe espone tre funzioni per la generazione di marcatori, il metodo marker_series::write_flag, il metodo marker_series::write_message e il metodo marker_series::write_alert.

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

  2. Selezionare il progetto in cui si vuole accedere all'SDK e quindi scegliere il pulsante Aggiungi SDK a progetto selezionato .

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

  4. Aggiungere un'istruzione using al codice.

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

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

Utilizzo personalizzato

Per gli scenari avanzati, l'SDK del visualizzatore di concorrenza espone un maggiore controllo. Due concetti principali sono associati a scenari più avanzati: provider di marcatori e serie di marcatori. I fornitori di marcatori sono diversi fornitori ETW (ognuno ha un diverso GUID). Le serie di marcatori sono canali seriali di eventi generati da un provider. È possibile usarli per organizzare gli eventi generati da un provider di marcatori.

Per usare un nuovo provider di 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 quindi scegliere 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 di marcatori in un progetto C++ o C

  1. Usare la CvInitProvider funzione 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 quindi scegliere il pulsante Aggiungi nuovo provider . In questa 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 MarkerSeries, crearlo prima usando un oggetto MarkerWriter e quindi generare eventi di marcatore 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. È possibile generare eventi da questa nuova serie.

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

Per usare una serie di marcatori in un progetto C

  1. Usare la CvCreateMarkerSeries funzione per creare un PCV_MARKERSERIES.

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

Vedere anche

Titolo Description
Informazioni di riferimento sulla libreria C++ Descrive l'API del visualizzatore di concorrenza per C++.
Informazioni di riferimento sulla libreria C Descrive l'API del visualizzatore di concorrenza per C.
strumentazione Descrive l'API del visualizzatore di concorrenza per il codice gestito.
Visualizzatore di concorrenza Informazioni di riferimento per le visualizzazioni e i report dei file di dati di profilatura generati tramite il metodo di concorrenza e che includono i dati di esecuzione del thread.