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
}