Udostępnij za pośrednictwem


SuspendProfile

Metoda SuspendProfile inkrementuje licznik Wstrzymaj/Wznów dla określonego poziomu profilowania.

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

Parametry

Level

Wskazuje poziom profilowania do którego ma być zastosowane zbieranie danych wydajności.Następujące moduły wyliczające PROFILE_CONTROL_LEVEL mogą zostać użyte do wskazania jednego z trzech poziomów, do których można zastosować zbieranie danych wydajności:

Moduł wyliczający

Opis

PROFILE_GLOBALLEVEL

Ustawienie poziomu globalnego dotyczy wszystkich procesów i wątków w przebiegu profilowania.

PROFILE_PROCESSLEVEL

Ustawienie poziomu procesu dotyczy wszystkich wątków, które stanowią część określonego procesu.

PROFILE_THREADLEVEL

Ustawienie poziomu profilowania wątku dotyczy określonego wątku.

dwId

Identyfikator procesu lub wątku generowany przez system.

Wartość właściwości/Zwracana wartość

Funkcja wskazuje powodzenie lub niepowodzenie za pomocą wyliczenia PROFILE_COMMAND_STATUS.Zwracana wartość może być jedną z następujących:

Moduł wyliczający

Opis

PROFILE_ERROR_ID_NOEXIST

Identyfikator elementu profilowania nie istnieje.

PROFILE_ERROR_LEVEL_NOEXIST

Określony poziom profilowania nie istnieje.

PROFILE_ERROR_MODE_NEVER

Tryb profilowania został ustawiony na NEVER, gdy funkcja została wywołana.

PROFILE_ERROR_NOT_YET_IMPLEMENTED

Wywołanie funkcji profilowania, poziom profilowania lub kombinacja wywołania z poziomem nie jest jeszcze zaimplementowana.

PROFILE_OK

Wywołanie zakończyło się pomyślnie.

Uwagi

Początkowa wartość licznika Wstrzymaj/Wznów to 0.Każde wywołanie SuspendProfile dodaje 1 do licznika Wstrzymaj/Wznów; każde wywołanie ResumeProfile odejmuje od niego 1.

Gdy licznik Wstrzymaj/Wznów jest większy niż 0, stan Wstrzymaj/Wznów dla poziomu jest wyłączony.Kiedy licznik jest mniejszy lub równy 0, stan Wstrzymaj/Wznów jest włączony.

Gdy zarówno stan Start/Stop i stan Wstrzymaj/Wznów są włączone, stan profilowania dla poziomu to ON.Dla profilowanego wątku, wszystkie stany wątku: globalny, procesu i poziomu wątku muszą być włączone.

Odpowiednik w programie .NET Framework

Microsoft.VisualStudio.Profiler.dll

Informacje o funkcji

Nagłówek: Zadeklarowany w VSPerf.h

Importowana biblioteka: VSPerf.lib

Przykład

Poniższy przykład demonstruje metodę SuspendProfile.W tym przykładzie założono, że zostało wykonane wcześniejsze wywołanie StartProfile dla procesu lub wątku identyfikowanego przez 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
}

Zobacz też

Inne zasoby

Interfejsy API profilera Visual Studio (Native)