Condividi tramite


SuspendProfile

Il metodo SuspendProfile incrementa il contatore Suspend/Resume per il livello di analisi specificato.

PROFILE_COMMAND_STATUS PROFILERAPI SuspendProfile(
                       PROFILE_CONTROL_LEVEL Level, 
                       unsigned int dwId);

Parametri

Level

Indica il livello di analisi al quale può essere applicata la raccolta dei dati sulle prestazioni. Gli enumeratori PROFILE_CONTROL_LEVEL seguenti possono essere utilizzati per indicare uno dei tre livelli a cui può essere applicata la raccolta dei dati sulle prestazioni:

Enumerator

Oggetto di descrizione

PROFILE_GLOBALLEVEL

L'impostazione del livello globale influisce su tutti i processi e i thread della sessione durante l'esecuzione del profilo.

PROFILE_PROCESSLEVEL

L'impostazione del livello di processo influisce su tutti i thread appartenenti al processo specificato.

PROFILE_THREADLEVEL

L'impostazione del livello di profilo dei thread influisce sul thread specificato.

dwId

Identificatore del processo o del thread generato dal sistema.

Valore proprietà/Valore restituito

La funzione indica esito positivo o negativo utilizzando l'enumerazione PROFILE_COMMAND_STATUS. Il valore restituito può essere uno dei seguenti:

Enumerator

Oggetto di descrizione

PROFILE_ERROR_ID_NOEXIST

L'ID elemento di profilo non esiste.

PROFILE_ERROR_LEVEL_NOEXIST

Il livello di profilo specificato non esiste.

PROFILE_ERROR_MODE_NEVER

La modalità di profilo è stata impostata su NEVER quando è stata chiamata la funzione.

PROFILE_ERROR_NOT_YET_IMPLEMENTED

Non è ancora stata eseguita l'implementazione della chiamata alla funzione di profilo, del livello di profilo o della combinazione di entrambi.

PROFILE_OK

La chiamata è stata eseguita correttamente.

Note

Il valore iniziale del contatore Suspend/Resume è 0. Ogni chiamata a SuspendProfile e a ResumeProfile rispettivamente aggiunge e sottrae 1 al conteggio Suspend/Resume.

Quando il conteggio Suspend/Resume è maggiore di 0, lo stato Suspend/Resume del livello è OFF. Quando il conteggio è minore o uguale a 0, lo stato Suspend/Resume è ON.

Quando gli stati Start/Stop e Suspend/Resume sono entrambi impostati su ON, lo stato di profilo del livello è ON. Per il profilo di un thread è necessario che gli stati a livello globale, di processo e di thread siano tutti impostati su ON.

Equivalente .NET Framework

Microsoft.VisualStudio.Profiler.dll

Informazioni sulla funzione

Intestazione: dichiarata in VSPerf.h

Libreria di importazione: VSPerf.lib

Esempio

Nell'esempio riportato di seguito viene illustrato il metodo SuspendProfile. Nell'esempio si presuppone che sia stata effettuata una chiamata precedente a StartProfile per il processo o il thread identificato da PROFILE_CURRENTID.

void ExerciseSuspendProfile()
{
    // The initial value of the Suspend/Resume counter is 0.
    // Each call to SuspendProfile adds 1 to the
    // Suspend/Resume count; each call
    // to ResumeProfile subtracts 1.
            
    // Variables used to print output
    HRESULT hResult;
    TCHAR tchBuffer[256];

    // Declare enumeration to hold result of call
    // to SuspendProfile
    PROFILE_COMMAND_STATUS profileResult;

    profileResult = SuspendProfile(
        PROFILE_GLOBALLEVEL,
        PROFILE_CURRENTID);

    // Format and print result.
    LPCTSTR pszFormat = TEXT("%s %d.\0");
    TCHAR* pszTxt = TEXT("SuspendProfile returned");
    hResult = StringCchPrintf(tchBuffer, 256, pszFormat, 
        pszTxt, profileResult);

#ifdef DEBUG
    OutputDebugString(tchBuffer);
#endif
}

Vedere anche

Altre risorse

Riferimenti per le API del profiler di Visual Studio (native)