PerformanceCounterCategory.Exists Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет, зарегистрирована ли категория в системе.
Перегрузки
Exists(String) |
Определяет, зарегистрирована ли категория на локальном компьютере. |
Exists(String, String) |
Определяет, зарегистрирована ли категория на указанном компьютере. |
Exists(String)
- Исходный код:
- PerformanceCounterCategory.cs
- Исходный код:
- PerformanceCounterCategory.cs
- Исходный код:
- PerformanceCounterCategory.cs
Определяет, зарегистрирована ли категория на локальном компьютере.
public:
static bool Exists(System::String ^ categoryName);
public static bool Exists (string categoryName);
static member Exists : string -> bool
Public Shared Function Exists (categoryName As String) As Boolean
Параметры
- categoryName
- String
Имя искомой категории счетчиков производительности.
Возвращаемое значение
Если категория зарегистрирована, значение true
, если нет, значение false
.
Исключения
Параметр categoryName
имеет значение null
.
Параметр categoryName
представляет собой пустую строку ("").
Сбой при вызове основного API системы.
Код, выполняющийся без привилегий администратора, предпринял попытку считывания значения счетчика производительности.
Примеры
В следующем примере кода определяется, PerformanceCounterCategory существует ли объект с именем orders. В противном случае он создает PerformanceCounterCategory объект с помощью CounterCreationDataCollection объекта , содержащего два счетчика производительности.
if ( !PerformanceCounterCategory::Exists( "Orders" ) )
{
CounterCreationData^ milk = gcnew CounterCreationData;
milk->CounterName = "milk";
milk->CounterType = PerformanceCounterType::NumberOfItems32;
CounterCreationData^ milkPerSecond = gcnew CounterCreationData;
milkPerSecond->CounterName = "milk orders/second";
milkPerSecond->CounterType = PerformanceCounterType::RateOfCountsPerSecond32;
CounterCreationDataCollection^ ccds = gcnew CounterCreationDataCollection;
ccds->Add( milkPerSecond );
ccds->Add( milk );
PerformanceCounterCategory::Create( "Orders", "Number of processed orders", ccds );
}
if (!PerformanceCounterCategory.Exists("Orders"))
{
CounterCreationData milk = new CounterCreationData();
milk.CounterName = "milk";
milk.CounterType = PerformanceCounterType.NumberOfItems32;
CounterCreationData milkPerSecond = new CounterCreationData();
milkPerSecond.CounterName = "milk orders/second";
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32;
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(milkPerSecond);
ccds.Add(milk);
PerformanceCounterCategory.Create("Orders", "Number of processed orders",
PerformanceCounterCategoryType.SingleInstance, ccds);
}
If Not PerformanceCounterCategory.Exists("Orders") Then
Dim milk As New CounterCreationData()
milk.CounterName = "milk"
milk.CounterType = PerformanceCounterType.NumberOfItems32
Dim milkPerSecond As New CounterCreationData()
milkPerSecond.CounterName = "milk orders/second"
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32
Dim ccds As New CounterCreationDataCollection()
ccds.Add(milkPerSecond)
ccds.Add(milk)
PerformanceCounterCategory.Create("Orders", "Number of processed orders", _
PerformanceCounterCategoryType.SingleInstance, ccds)
End If
Комментарии
Exists Использование метода может привести к заметному повышению производительности при проверке доступности всех счетчиков производительности на компьютере. Если запись выполняется только в счетчик производительности, можно избежать глобальный поиск для счетчиков производительности, создав счетчик производительности при установке приложения и предполагая, что категория существует при доступе к счетчику. Невозможно избежать поиска счетчиков производительности при чтении из счетчиков производительности.
Примечание
Для чтения счетчиков производительности из неинтерактивного сеанса входа в Windows Vista и более поздних версий, Windows XP Professional x64 Edition или Windows Server 2003 необходимо быть членом группы Монитор производительности Пользователи или иметь права администратора.
Чтобы избежать повышения привилегий для доступа к счетчикам производительности в Windows Vista и более поздних версиях, добавьте себя в группу Монитор производительности Пользователи.
В Windows Vista и более поздних версиях права доступа пользователя определяются контролем учетных записей. Члену встроенной группы "Администраторы" присваивается два маркера доступа на время выполнения: маркер доступа обычного пользователя и маркер доступа администратора. По умолчанию назначена роль обычного пользователя. Чтобы выполнить код, который обращается к счетчикам производительности, необходимо сначала повысить привилегии обычного пользователя до администратора. Это можно сделать при запуске приложения, , щелкнув значок приложения правой кнопкой мыши и указав, что приложение должно запускаться от имени администратора.
См. также раздел
Применяется к
Exists(String, String)
- Исходный код:
- PerformanceCounterCategory.cs
- Исходный код:
- PerformanceCounterCategory.cs
- Исходный код:
- PerformanceCounterCategory.cs
Определяет, зарегистрирована ли категория на указанном компьютере.
public:
static bool Exists(System::String ^ categoryName, System::String ^ machineName);
public static bool Exists (string categoryName, string machineName);
static member Exists : string * string -> bool
Public Shared Function Exists (categoryName As String, machineName As String) As Boolean
Параметры
- categoryName
- String
Имя искомой категории счетчиков производительности.
- machineName
- String
Имя компьютера для проверки категории.
Возвращаемое значение
Если категория зарегистрирована, значение true
, если нет, значение false
.
Исключения
Параметр categoryName
имеет значение null
.
Параметр categoryName
представляет собой пустую строку ("").
-или-
Параметр machineName
является недопустимым.
Сбой при вызове основного API системы.
Сетевой путь не найден.
У вызывающего объекта отсутствует необходимое разрешение.
-или-
Код, выполняющийся без привилегий администратора, предпринял попытку считывания значения счетчика производительности.
Примеры
В следующем примере определяется, существует ли объект с PerformanceCounterCategory именем Orders
. Если он не существует, в примере создается PerformanceCounterCategory объект с помощью CounterCreationDataCollection объекта, содержащего два счетчика производительности.
if ( !PerformanceCounterCategory::Exists( "Orders" ) )
{
CounterCreationData^ milk = gcnew CounterCreationData;
milk->CounterName = "milk";
milk->CounterType = PerformanceCounterType::NumberOfItems32;
CounterCreationData^ milkPerSecond = gcnew CounterCreationData;
milkPerSecond->CounterName = "milk orders/second";
milkPerSecond->CounterType = PerformanceCounterType::RateOfCountsPerSecond32;
CounterCreationDataCollection^ ccds = gcnew CounterCreationDataCollection;
ccds->Add( milkPerSecond );
ccds->Add( milk );
PerformanceCounterCategory::Create( "Orders", "Number of processed orders", ccds );
}
if (!PerformanceCounterCategory.Exists("Orders"))
{
CounterCreationData milk = new CounterCreationData();
milk.CounterName = "milk";
milk.CounterType = PerformanceCounterType.NumberOfItems32;
CounterCreationData milkPerSecond = new CounterCreationData();
milkPerSecond.CounterName = "milk orders/second";
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32;
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(milkPerSecond);
ccds.Add(milk);
PerformanceCounterCategory.Create("Orders", "Number of processed orders",
PerformanceCounterCategoryType.SingleInstance, ccds);
}
If Not PerformanceCounterCategory.Exists("Orders") Then
Dim milk As New CounterCreationData()
milk.CounterName = "milk"
milk.CounterType = PerformanceCounterType.NumberOfItems32
Dim milkPerSecond As New CounterCreationData()
milkPerSecond.CounterName = "milk orders/second"
milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32
Dim ccds As New CounterCreationDataCollection()
ccds.Add(milkPerSecond)
ccds.Add(milk)
PerformanceCounterCategory.Create("Orders", "Number of processed orders", _
PerformanceCounterCategoryType.SingleInstance, ccds)
End If
Комментарии
Exists Использование метода может привести к заметному повышению производительности при проверке доступности всех счетчиков производительности на компьютере. Если запись выполняется только в счетчик производительности, можно избежать глобальный поиск для счетчиков производительности, создав счетчик производительности при установке приложения и предполагая, что категория существует при доступе к счетчику. Невозможно избежать поиска счетчиков производительности при чтении из счетчиков производительности.
Примечание
Для чтения счетчиков производительности из неинтерактивного сеанса входа в Windows Vista и более поздних версий, Windows XP Professional x64 Edition или Windows Server 2003 необходимо быть членом группы Монитор производительности Пользователи или иметь права администратора.
Чтобы избежать повышения привилегий для доступа к счетчикам производительности в Windows Vista и более поздних версиях, добавьте себя в группу Монитор производительности Пользователи.
В Windows Vista и более поздних версиях права доступа пользователя определяются контролем учетных записей. Члену встроенной группы "Администраторы" присваивается два маркера доступа на время выполнения: маркер доступа обычного пользователя и маркер доступа администратора. По умолчанию назначена роль обычного пользователя. Чтобы выполнить код, который обращается к счетчикам производительности, необходимо сначала повысить привилегии обычного пользователя до администратора. Это можно сделать при запуске приложения, , щелкнув значок приложения правой кнопкой мыши и указав, что приложение должно запускаться от имени администратора.