SuspendProfile
Обновлен: Ноябрь 2007
Метод SuspendProfile увеличивает на единицу значение счетчика приостановки/возобновления для указанного уровня профилирования.
PROFILE_COMMAND_STATUS PROFILERAPI SuspendProfile(
PROFILE_CONTROL_LEVEL Level,
unsigned int dwId);
Параметры
Level
Указывает уровень профилирования, к которому можно применить сбор данных о производительности. Для указания одного из трех уровней, к которому можно применить сбор данных о производительности, следует использовать следующие перечислители PROFILE_CONTROL_LEVEL.
Перечислитель |
Описание |
---|---|
PROFILE_GLOBALLEVEL |
Установка глобального уровня оказывает влияние на все процессы и потоки при выполнении профилирования. |
PROFILE_PROCESSLEVEL |
Установка уровня процесса оказывает влияние на все потоки, являющиеся частью указанного процесса. |
PROFILE_THREADLEVEL |
Установка уровня профилирования потока влияет на заданный поток. |
dwId
Идентификатор процесса или потока, созданный системой.
Значение свойства или возвращаемое значение
Функция указывает на успешное выполнение или сбой посредством перечисления PROFILE_COMMAND_STATUS. Ниже перечислены возможные возвращаемые значения.
Перечислитель |
Описание |
---|---|
PROFILE_ERROR_ID_NOEXIST |
Идентификатор элемента профилирования не существует. |
PROFILE_ERROR_LEVEL_NOEXIST |
Заданный уровень профилирования не существует. |
PROFILE_ERROR_MODE_NEVER |
При вызове функции для режима профилирования было задано значение NEVER. |
PROFILE_ERROR_NOT_YET_IMPLEMENTED |
Вызов функции профилирования, уровень профилирования или сочетание вызова и уровня пока не реализованы. |
PROFILE_OK |
Вызов выполнен успешно. |
Заметки
Начальное значение счетчика приостановки/возобновления равно 0. Каждый вызов метода SuspendProfile добавляет 1 к значению счетчика приостановки/возобновления, каждый вызов метода ResumeProfile вычитает 1.
Если значение счетчика приостановки/возобновления больше 0, состояние приостановки/возобновления для уровня равно значению OFF. Если значение счетчика меньше или равно 0, состояние приостановки/возобновления равно значению ON.
Если состояния начала/остановки и приостановки/возобновления равны значению ON, состояние профилирования для данного уровня равно значению ON.</para> Для профилируемого потока состояния глобального уровня, уровня процесса и потока должны быть равны значению ON.
Эквивалент в .NET Framework
Microsoft.VisualStudio.Profiler.dll
Сведения о функции
Заголовок: объявлен в файле VSPerf.h.
Импортируемая библиотека: VSPerf.lib
Пример
В следующем примере демонстрируется использование метода SuspendProfile. В примере предполагается, что для процесса или потока, определенного параметром PROFILE_CURRENTID, предварительно выполнен вызов метода StartProfile.
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
}
См. также
Другие ресурсы
Справочник по API-интерфейсам профилировщика Visual Studio (машинный код)