PerformanceCounterCategory.Create Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Регистрирует в системе пользовательскую категорию счетчиков производительности и один или несколько счетчиков.
Перегрузки
Create(String, String, String, String) |
Устаревшие..
Устаревшие..
Устаревшие..
Регистрирует пользовательскую категорию счетчиков производительности, содержащую на локальном компьютере один счетчик типа |
Create(String, String, PerformanceCounterCategoryType, String, String) |
Регистрирует пользовательскую категорию счетчиков производительности, содержащую на локальном компьютере один счетчик типа NumberOfItems32. |
Create(String, String, CounterCreationDataCollection) |
Устаревшие..
Устаревшие..
Устаревшие..
Регистрирует пользовательскую категорию счетчиков производительности, содержащую указанные счетчики на локальном компьютере. |
Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection) |
Регистрирует пользовательскую категорию счетчиков производительности, содержащую указанные счетчики на локальном компьютере. |
Create(String, String, String, String)
- Исходный код:
- PerformanceCounterCategory.cs
- Исходный код:
- PerformanceCounterCategory.cs
- Исходный код:
- PerformanceCounterCategory.cs
Внимание!
This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. http://go.microsoft.com/fwlink/?linkid=14202
Внимание!
This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. https://go.microsoft.com/fwlink/?linkid=14202
Внимание!
This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.
Регистрирует пользовательскую категорию счетчиков производительности, содержащую на локальном компьютере один счетчик типа NumberOfItems32
.
public:
static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::String ^ counterName, System::String ^ counterHelp);
[System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, string counterName, string counterHelp);
[<System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead. https://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, counterName As String, counterHelp As String) As PerformanceCounterCategory
Параметры
- categoryName
- String
Имя пользовательской категории счетчиков производительности, которую нужно создать и зарегистрировать в системе.
- categoryHelp
- String
Описание пользовательской категории.
- counterName
- String
Имя нового счетчика типа NumberOfItems32
, создаваемого в новой категории.
- counterHelp
- String
Описание счетчика, связанного с новой пользовательской категорией.
Возвращаемое значение
Категория PerformanceCounterCategory, связанная с новой системной категорией, или объект производительности.
- Атрибуты
Исключения
Параметр counterName
равен null
или является пустой строкой ("").
-или-
Счетчик, указанный параметром counterName
, уже существует.
-или-
Синтаксис параметра counterName
недопустим. Он может содержать символы обратной косой черты ("\") или иметь длину более 80 символов.
Категория уже существует на локальном компьютере.
Сбой при вызове основного API системы.
Код, выполняющийся без привилегий администратора, предпринял попытку считывания значения счетчика производительности.
Примеры
В следующем примере кода создается и один с PerformanceCounter текстом PerformanceCounterCategory справки Create(String, String, String, String) для каждого из них с помощью метода .
public static void Main(string[] args)
{
string categoryName = "";
string counterName = "";
string categoryHelp = "";
string counterHelp = "";
PerformanceCounterCategory pcc;
// Copy the supplied arguments into the local variables.
try
{
categoryName = args[0];
counterName = args[1];
categoryHelp = args[2];
counterHelp = args[3];
}
catch(Exception ex)
{
// Ignore the exception from non-supplied arguments.
}
Console.WriteLine("Category name: \"{0}\"", categoryName);
Console.WriteLine("Category help: \"{0}\"", categoryHelp);
Console.WriteLine("Counter name: \"{0}\"", counterName);
Console.WriteLine("Counter help: \"{0}\"", counterHelp);
// Use the Create overload that creates a single counter.
try
{
pcc = PerformanceCounterCategory.Create(categoryName, categoryHelp, counterName, counterHelp);
Console.WriteLine("Category \"{0}\" created.", pcc.CategoryName);
}
catch(Exception ex)
{
Console.WriteLine("Unable to create the above category and counter:" + "\n" + ex.Message);
}
}
Sub Main(ByVal args() As String)
Dim categoryName As String = ""
Dim counterName As String = ""
Dim categoryHelp As String = ""
Dim counterHelp As String = ""
Dim pcc As PerformanceCounterCategory
' Copy the supplied arguments into the local variables.
Try
categoryName = args(0)
counterName = args(1)
categoryHelp = args(2)
counterHelp = args(3)
Catch ex As Exception
' Ignore the exception from non-supplied arguments.
End Try
Console.WriteLine("Category name: ""{0}""", categoryName)
Console.WriteLine("Category help: ""{0}""", categoryHelp)
Console.WriteLine("Counter name: ""{0}""", counterName)
Console.WriteLine("Counter help: ""{0}""", counterHelp)
' Use the Create overload that creates a single counter.
Try
pcc = PerformanceCounterCategory.Create( _
categoryName, categoryHelp, counterName, counterHelp)
Console.WriteLine("Category ""{0}"" created.", pcc.CategoryName)
Catch ex As Exception
Console.WriteLine( _
"Unable to create the above category and counter:" & _
vbCrLf & ex.Message)
End Try
End Sub
Комментарии
Примечание
Для чтения счетчиков производительности из неинтерактивного сеанса входа в Windows Vista и более поздних версий, Windows XP Professional x64 Edition или Windows Server 2003 необходимо быть членом группы Монитор производительности Пользователи или иметь права администратора.
Чтобы избежать повышения привилегий для доступа к счетчикам производительности в Windows Vista и более поздних версиях, добавьте себя в группу Монитор производительности пользователи.
В Windows Vista и более поздних версиях права доступа пользователя определяются контролем учетных записей. Члену встроенной группы "Администраторы" присваивается два маркера доступа на время выполнения: маркер доступа обычного пользователя и маркер доступа администратора. По умолчанию назначена роль обычного пользователя. Чтобы выполнить код, который обращается к счетчикам производительности, необходимо сначала повысить привилегии от обычного пользователя до администратора. Это можно сделать при запуске приложения, , щелкнув значок приложения правой кнопкой мыши и указав, что приложение должно запускаться от имени администратора.
См. также раздел
Применяется к
Create(String, String, PerformanceCounterCategoryType, String, String)
- Исходный код:
- PerformanceCounterCategory.cs
- Исходный код:
- PerformanceCounterCategory.cs
- Исходный код:
- PerformanceCounterCategory.cs
Регистрирует пользовательскую категорию счетчиков производительности, содержащую на локальном компьютере один счетчик типа NumberOfItems32.
public:
static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::Diagnostics::PerformanceCounterCategoryType categoryType, System::String ^ counterName, System::String ^ counterHelp);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.PerformanceCounterCategoryType categoryType, string counterName, string counterHelp);
static member Create : string * string * System.Diagnostics.PerformanceCounterCategoryType * string * string -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, categoryType As PerformanceCounterCategoryType, counterName As String, counterHelp As String) As PerformanceCounterCategory
Параметры
- categoryName
- String
Имя пользовательской категории счетчиков производительности, которую нужно создать и зарегистрировать в системе.
- categoryHelp
- String
Описание пользовательской категории.
- categoryType
- PerformanceCounterCategoryType
Одно из значений PerformanceCounterCategoryType, позволяющих определить тип категории: MultiInstance, SingleInstance или Unknown.
- counterName
- String
Имя нового счетчика, создаваемого в новой категории.
- counterHelp
- String
Описание счетчика, связанного с новой пользовательской категорией.
Возвращаемое значение
Категория PerformanceCounterCategory, связанная с новой системной категорией, или объект производительности.
Исключения
Параметр counterName
равен null
или является пустой строкой ("").
-или-
Счетчик, указанный параметром counterName
, уже существует.
-или-
Синтаксис параметра counterName
недопустим. Он может содержать символы обратной косой черты ("\") или иметь длину более 80 символов.
Категория уже существует на локальном компьютере.
Сбой при вызове основного API системы.
Код, выполняющийся без привилегий администратора, предпринял попытку считывания значения счетчика производительности.
Примеры
В следующем примере кода показано использование Create метода . В примере показано, как создать пользовательскую категорию счетчика производительности с одним экземпляром.
Console.WriteLine("Creating Inventory custom counter");
if (!PerformanceCounterCategory.Exists("Inventory"))
PerformanceCounterCategory.Create("Inventory",
"Truck inventory",
PerformanceCounterCategoryType.SingleInstance,
"Trucks", "Number of trucks on hand");
Console.WriteLine("Creating Inventory custom counter")
If Not PerformanceCounterCategory.Exists("Inventory") Then
PerformanceCounterCategory.Create("Inventory", "Truck inventory", PerformanceCounterCategoryType.SingleInstance, "Trucks", "Number of trucks on hand")
End If
Комментарии
Параметр categoryType
указывает, относится ли счетчик производительности к категории с одним или несколькими экземплярами. По умолчанию категория является одним экземпляром при ее создании и становится несколькими экземплярами при добавлении другого экземпляра. Категории создаются при настройке приложения, а экземпляры добавляются во время выполнения. В платформа .NET Framework версиях 1.0 и 1.1 не требуется знать, относится ли счетчик производительности к категории с несколькими экземплярами или с одним экземпляром. В платформа .NET Framework 2.0 перечисление используется для указания того, PerformanceCounterCategoryType может ли счетчик производительности иметь несколько экземпляров.
Категории счетчиков производительности, установленные вместе с платформа .NET Framework 2.0, используют отдельную общую память, при этом каждая категория счетчиков производительности имеет собственную память. Вы можете указать размер отдельной общей памяти, создав DWORD с именем FileMappingSize в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<имя> категории\Производительность. Для параметра FileMappingSize задается размер общей памяти категории. Размер по умолчанию — 131072 десятичное число. Если значение FileMappingSize отсутствует, fileMappingSize
используется значение атрибута для performanceCounters
элемента, указанного в файле Machine.config, что приводит к дополнительным издержкам при обработке файла конфигурации. Вы можете повысить производительность при запуске приложения, задав размер сопоставления файлов в реестре.
Примечание
Настоятельно рекомендуется создавать новые категории счетчиков производительности во время установки приложения, а не во время его выполнения. Это позволяет операционной системе обновить список зарегистрированных категорий счетчиков производительности. Если список не был обновлен, попытка использовать категорию завершится ошибкой.
Примечание
Для чтения счетчиков производительности из неинтерактивного сеанса входа в Windows Vista и более поздних версий, Windows XP Professional x64 Edition или Windows Server 2003 необходимо быть членом группы Монитор производительности Пользователи или иметь права администратора.
Чтобы избежать повышения привилегий для доступа к счетчикам производительности в Windows Vista и более поздних версиях, добавьте себя в группу Монитор производительности пользователи.
В Windows Vista и более поздних версиях права доступа пользователя определяются контролем учетных записей. Члену встроенной группы "Администраторы" присваивается два маркера доступа на время выполнения: маркер доступа обычного пользователя и маркер доступа администратора. По умолчанию назначена роль обычного пользователя. Чтобы выполнить код, который обращается к счетчикам производительности, необходимо сначала повысить привилегии от обычного пользователя до администратора. Это можно сделать при запуске приложения, , щелкнув значок приложения правой кнопкой мыши и указав, что приложение должно запускаться от имени администратора.
См. также раздел
Применяется к
Create(String, String, CounterCreationDataCollection)
- Исходный код:
- PerformanceCounterCategory.cs
- Исходный код:
- PerformanceCounterCategory.cs
- Исходный код:
- PerformanceCounterCategory.cs
Внимание!
This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. http://go.microsoft.com/fwlink/?linkid=14202
Внимание!
This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. https://go.microsoft.com/fwlink/?linkid=14202
Внимание!
This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.
Регистрирует пользовательскую категорию счетчиков производительности, содержащую указанные счетчики на локальном компьютере.
public:
static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::Diagnostics::CounterCreationDataCollection ^ counterData);
[System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. https://go.microsoft.com/fwlink/?linkid=14202")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.")]
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.CounterCreationDataCollection counterData);
[<System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This method has been deprecated. Please use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead. https://go.microsoft.com/fwlink/?linkid=14202")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
[<System.Obsolete("This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, counterData As CounterCreationDataCollection) As PerformanceCounterCategory
Параметры
- categoryName
- String
Имя пользовательской категории счетчиков производительности, которую нужно создать и зарегистрировать в системе.
- categoryHelp
- String
Описание пользовательской категории.
- counterData
- CounterCreationDataCollection
Коллекция CounterCreationDataCollection, в которой определяются счетчики, создаваемые в новой категории.
Возвращаемое значение
Категория PerformanceCounterCategory, связанная с новой пользовательской категорией, или объект производительности.
- Атрибуты
Исключения
Имя счетчика, указанное в коллекции counterData
, — null
или пустая строка ("").
-или-
Счетчик, указанный в коллекции counterData
, уже существует.
-или-
Синтаксис параметра counterName
недопустим. Он может содержать символы обратной косой черты ("\") или иметь длину более 80 символов.
Параметр categoryName
имеет значение null
.
Категория уже существует на локальном компьютере.
-или-
Структура коллекции counterData
является неверной для базовых счетчиков. Счетчики типа AverageCount64
, AverageTimer32
, CounterMultiTimer
, CounterMultiTimerInverse
, CounterMultiTimer100Ns
, CounterMultiTimer100NsInverse
, RawFraction
, SampleFraction
или SampleCounter
должны непосредственно предшествовать одному из типов базовых счетчиков (AverageBase
, MultiBase
, RawBase
или SampleBase
).
Сбой при вызове основного 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
Комментарии
Примечание
Для чтения счетчиков производительности из неинтерактивного сеанса входа в Windows Vista и более поздних версий, Windows XP Professional x64 Edition или Windows Server 2003 необходимо быть членом группы Монитор производительности Пользователи или иметь права администратора.
Чтобы избежать повышения привилегий для доступа к счетчикам производительности в Windows Vista и более поздних версиях, добавьте себя в группу Монитор производительности Пользователи.
В Windows Vista и более поздних версиях права доступа пользователя определяются контролем учетных записей. Члену встроенной группы "Администраторы" присваивается два маркера доступа на время выполнения: маркер доступа обычного пользователя и маркер доступа администратора. По умолчанию назначена роль обычного пользователя. Чтобы выполнить код, который обращается к счетчикам производительности, необходимо сначала повысить привилегии обычного пользователя до администратора. Это можно сделать при запуске приложения, , щелкнув значок приложения правой кнопкой мыши и указав, что приложение должно запускаться от имени администратора.
См. также раздел
Применяется к
Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection)
- Исходный код:
- PerformanceCounterCategory.cs
- Исходный код:
- PerformanceCounterCategory.cs
- Исходный код:
- PerformanceCounterCategory.cs
Регистрирует пользовательскую категорию счетчиков производительности, содержащую указанные счетчики на локальном компьютере.
public:
static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::Diagnostics::PerformanceCounterCategoryType categoryType, System::Diagnostics::CounterCreationDataCollection ^ counterData);
public static System.Diagnostics.PerformanceCounterCategory Create (string categoryName, string categoryHelp, System.Diagnostics.PerformanceCounterCategoryType categoryType, System.Diagnostics.CounterCreationDataCollection counterData);
static member Create : string * string * System.Diagnostics.PerformanceCounterCategoryType * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
Public Shared Function Create (categoryName As String, categoryHelp As String, categoryType As PerformanceCounterCategoryType, counterData As CounterCreationDataCollection) As PerformanceCounterCategory
Параметры
- categoryName
- String
Имя пользовательской категории счетчиков производительности, которую нужно создать и зарегистрировать в системе.
- categoryHelp
- String
Описание пользовательской категории.
- categoryType
- PerformanceCounterCategoryType
Одно из значений перечисления PerformanceCounterCategoryType.
- counterData
- CounterCreationDataCollection
Коллекция CounterCreationDataCollection, в которой определяются счетчики, создаваемые в новой категории.
Возвращаемое значение
Категория PerformanceCounterCategory, связанная с новой пользовательской категорией, или объект производительности.
Исключения
Имя счетчика, указанное в коллекции counterData
, — null
или пустая строка ("").
-или-
Счетчик, указанный в коллекции counterData
, уже существует.
-или-
Синтаксис параметра counterName
недопустим. Он может содержать символы обратной косой черты ("\") или иметь длину более 80 символов.
Значение параметра categoryType
выходит за рамки диапазона следующих значений: MultiInstance
, SingleInstance
Unknown
.
Категория уже существует на локальном компьютере.
-или-
Структура коллекции counterData
является неверной для базовых счетчиков. Счетчики типа AverageCount64
, AverageTimer32
, CounterMultiTimer
, CounterMultiTimerInverse
, CounterMultiTimer100Ns
, CounterMultiTimer100NsInverse
, RawFraction
, SampleFraction
или SampleCounter
должны непосредственно предшествовать одному из типов базовых счетчиков (AverageBase
, MultiBase
, RawBase
или SampleBase
).
Сбой при вызове основного API системы.
Код, выполняющийся без привилегий администратора, предпринял попытку считывания значения счетчика производительности.
Примеры
В следующем примере кода показано использование Create метода . В примере показано, как создать пользовательскую категорию счетчиков производительности с несколькими экземплярами для количества заказов в секунду.
CounterCreationData data1 = new CounterCreationData("Trucks",
"Number of orders", PerformanceCounterType.NumberOfItems32);
CounterCreationData data2 = new CounterCreationData("Rate of sales",
"Orders/second", PerformanceCounterType.RateOfCountsPerSecond32);
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(data1);
ccds.Add(data2);
Console.WriteLine("Creating Orders custom counter.");
if (!PerformanceCounterCategory.Exists("Orders"))
PerformanceCounterCategory.Create("Orders",
"Processed orders",
PerformanceCounterCategoryType.MultiInstance,
ccds);
Dim data1 As New CounterCreationData("Trucks", "Number of orders", PerformanceCounterType.NumberOfItems32)
Dim data2 As New CounterCreationData("Rate of sales", "Orders/second", PerformanceCounterType.RateOfCountsPerSecond32)
Dim ccds As New CounterCreationDataCollection()
ccds.Add(data1)
ccds.Add(data2)
Console.WriteLine("Creating Orders custom counter.")
If Not PerformanceCounterCategory.Exists("Orders") Then
PerformanceCounterCategory.Create("Orders", "Processed orders", PerformanceCounterCategoryType.MultiInstance, ccds)
End If
Комментарии
Параметр categoryType
указывает, является ли категория счетчика производительности одним или несколькими экземплярами. По умолчанию категория является одним экземпляром при создании и становится многоэкземлярной при добавлении другого экземпляра. Категории создаются при настройке приложения, а экземпляры добавляются во время выполнения. В платформа .NET Framework версиях 1.0 и 1.1 не нужно знать, является ли категория счетчика производительности многоэкземлярной или одноэкземлярной. В платформа .NET Framework 2.0 перечисление PerformanceCounterCategoryType используется для указания того, может ли счетчик производительности иметь несколько экземпляров.
Категории счетчиков производительности, установленные с платформа .NET Framework 2.0, используют отдельную общую память, при этом каждая категория счетчика производительности имеет собственную память. Вы можете указать размер отдельной общей памяти, создав DWORD с именем FileMappingSize в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<имя> категории\Производительность. Для параметра FileMappingSize задан размер общей памяти категории. Размер по умолчанию — 131072 десятичное число. Если значение FileMappingSize отсутствует, fileMappingSize
используется значение атрибута для performanceCounters
элемента, указанного в файле Machine.config, что приводит к дополнительным издержкам для обработки файла конфигурации. Вы можете повысить производительность при запуске приложения, задав размер сопоставления файлов в реестре.
Примечание
Настоятельно рекомендуется создавать новые категории счетчиков производительности во время установки приложения, а не во время его выполнения. Это позволяет операционной системе обновить список зарегистрированных категорий счетчиков производительности. Если список не был обновлен, попытка использовать категорию завершится ошибкой.
Примечание
Для чтения счетчиков производительности из неинтерактивного сеанса входа в Windows Vista и более поздних версий, Windows XP Professional x64 Edition или Windows Server 2003 необходимо быть членом группы Монитор производительности Пользователи или иметь права администратора.
Чтобы избежать повышения привилегий для доступа к счетчикам производительности в Windows Vista и более поздних версиях, добавьте себя в группу Монитор производительности Пользователи.
В Windows Vista и более поздних версиях права доступа пользователя определяются контролем учетных записей. Члену встроенной группы "Администраторы" присваивается два маркера доступа на время выполнения: маркер доступа обычного пользователя и маркер доступа администратора. По умолчанию назначена роль обычного пользователя. Чтобы выполнить код, который обращается к счетчикам производительности, необходимо сначала повысить привилегии обычного пользователя до администратора. Это можно сделать при запуске приложения, , щелкнув значок приложения правой кнопкой мыши и указав, что приложение должно запускаться от имени администратора.