PerformanceCounterCategory.Create 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
向系统注册自定义性能计数器类别和一个或多个计数器。
重载
| 名称 | 说明 |
|---|---|
| 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)
注意
This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, string counterName, string counterHelp) instead.
注意
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
注册包含本地计算机上的单个类型的 NumberOfItems32 计数器的自定义性能计数器类别。
public:
static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::String ^ categoryHelp, System::String ^ counterName, System::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")]
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.")>]
static member Create : string * string * string * string -> System.Diagnostics.PerformanceCounterCategory
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. 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
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 的调用失败。
在没有管理权限的情况下执行的代码尝试读取性能计数器。
注解
注释
若要从 Windows Vista 及更高版本中的非交互式登录会话读取性能计数器、Windows XP Professional x64 Edition 或 Windows Server 2003,你必须是性能监视器用户组的成员或具有管理权限。
若要避免提升特权以访问 Windows Vista 及更高版本中的性能计数器,请将自己添加到性能监视器用户组。
在 Windows Vista 及更高版本中,用户帐户控制(UAC)确定用户的权限。 如果你是内置管理员组的成员,则分配有两个运行时访问令牌:标准用户访问令牌和管理员访问令牌。 默认情况下,你处于标准用户角色。 若要执行访问性能计数器的代码,必须先将特权从标准用户提升到管理员。 在启动应用程序时,可以右键单击应用程序图标并指示要以管理员身份运行。
另请参阅
适用于
Create(String, String, PerformanceCounterCategoryType, String, String)
注册包含本地计算机上的单个类型的 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
指定类别是还是PerformanceCounterCategoryTypeMultiInstance指定类别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 参数指定性能计数器类别是单实例还是多实例。 默认情况下,在创建类别时为单实例,并在添加另一个实例时变为多实例。 设置应用程序时会创建类别,并在运行时添加实例。 枚举 PerformanceCounterCategoryType 用于指示性能计数器是否可以具有多个实例。
随.NET一起安装的性能计数器类别使用单独的共享内存,每个性能计数器类别都有自己的内存。 可以通过在注册表项中创建名为 FileMappingSize 的 DWORD 来指定单独的共享内存的大小, <HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\类别名称>\性能。 FileMappingSize 值设置为类别的共享内存大小。 默认大小为131072小数。 如果 FileMappingSize 值不存在, fileMappingSize 则使用 Machine.config 文件中指定的元素的 performanceCounters 属性值,从而导致配置文件处理产生额外的开销。 可以通过在注册表中设置文件映射大小来实现应用程序启动的性能改进。
注释
强烈建议在安装应用程序期间创建新的性能计数器类别,而不是在执行应用程序期间。 这允许操作系统有时间刷新其已注册的性能计数器类别列表。 如果列表尚未刷新,则尝试使用该类别将失败。
注释
若要从 Windows Vista 及更高版本中的非交互式登录会话读取性能计数器、Windows XP Professional x64 Edition 或 Windows Server 2003,你必须是性能监视器用户组的成员或具有管理权限。
若要避免提升特权以访问 Windows Vista 及更高版本中的性能计数器,请将自己添加到性能监视器用户组。
在 Windows Vista 及更高版本中,用户帐户控制(UAC)确定用户的权限。 如果你是内置管理员组的成员,则分配有两个运行时访问令牌:标准用户访问令牌和管理员访问令牌。 默认情况下,你处于标准用户角色。 若要执行访问性能计数器的代码,必须先将特权从标准用户提升到管理员。 在启动应用程序时,可以右键单击应用程序图标并指示要以管理员身份运行。
另请参阅
适用于
Create(String, String, CounterCreationDataCollection)
注意
This overload of PerformanceCounterCategory.Create has been deprecated. Use System.Diagnostics.PerformanceCounterCategory.Create(string categoryName, string categoryHelp, PerformanceCounterCategoryType categoryType, CounterCreationDataCollection counterData) instead.
注意
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
注册包含本地计算机上的指定计数器的自定义性能计数器类别。
public:
static System::Diagnostics::PerformanceCounterCategory ^ Create(System::String ^ categoryName, System::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")]
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.")>]
static member Create : string * string * System.Diagnostics.CounterCreationDataCollection -> System.Diagnostics.PerformanceCounterCategory
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. 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
Public Shared Function Create (categoryName As String, categoryHelp As String, counterData As CounterCreationDataCollection) As PerformanceCounterCategory
参数
- categoryName
- String
要创建和注册到系统的自定义性能计数器类别的名称。
- categoryHelp
- String
自定义类别的说明。
- counterData
- CounterCreationDataCollection
一个 CounterCreationDataCollection ,指定要作为新类别的一部分创建的计数器。
返回
与新的自定义类别或性能对象关联的对象 PerformanceCounterCategory 。
- 属性
例外
参数 categoryName 为 null.
该类别已存在于本地计算机上。
-或-
基计数器的 counterData 集合布局不正确。 类型、AverageCount64、、AverageTimer32、CounterMultiTimerCounterMultiTimerInverse、、CounterMultiTimer100Ns或CounterMultiTimer100NsInverseRawFractionSampleFraction必须紧跟基计数器类型SampleCounter之一(AverageBase、MultiBase或RawBaseSampleBase)的计数器。
对基础系统 API 的调用失败。
在没有管理权限的情况下执行的代码尝试读取性能计数器。
注解
注释
若要从 Windows Vista 及更高版本中的非交互式登录会话读取性能计数器、Windows XP Professional x64 Edition 或 Windows Server 2003,你必须是性能监视器用户组的成员或具有管理权限。
若要避免提升特权以访问 Windows Vista 及更高版本中的性能计数器,请将自己添加到性能监视器用户组。
在 Windows Vista 及更高版本中,用户帐户控制(UAC)确定用户的权限。 如果你是内置管理员组的成员,则分配有两个运行时访问令牌:标准用户访问令牌和管理员访问令牌。 默认情况下,你处于标准用户角色。 若要执行访问性能计数器的代码,必须先将特权从标准用户提升到管理员。 在启动应用程序时,可以右键单击应用程序图标并指示要以管理员身份运行。
另请参阅
适用于
Create(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection)
注册包含本地计算机上的指定计数器的自定义性能计数器类别。
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 。
例外
categoryType 值不在以下值的范围之外: MultiInstance, SingleInstance或 Unknown。
该类别已存在于本地计算机上。
-或-
基计数器的 counterData 集合布局不正确。 类型的AverageCount64计数器、AverageTimer32、CounterMultiTimer、CounterMultiTimerInverseCounterMultiTimer100NsCounterMultiTimer100NsInverse、RawFraction或SampleFractionSampleCounter必须紧跟其中一个基本计数器类型(AverageBase、MultiBase或)。 RawBaseSampleBase
对基础系统 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 参数指定性能计数器类别是单实例还是多实例。 默认情况下,在创建类别时为单实例,并在添加另一个实例时变为多实例。 设置应用程序时会创建类别,并在运行时添加实例。 枚举 PerformanceCounterCategoryType 用于指示性能计数器是否可以具有多个实例。
随.NET一起安装的性能计数器类别使用单独的共享内存,每个性能计数器类别都有自己的内存。 可以通过在注册表项中创建名为 FileMappingSize 的 DWORD 来指定单独的共享内存的大小, <HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\类别名称>\性能。 FileMappingSize 值设置为类别的共享内存大小。 默认大小为131072小数。 如果 FileMappingSize 值不存在, fileMappingSize 则使用 Machine.config 文件中指定的元素的 performanceCounters 属性值,从而导致配置文件处理产生额外的开销。 可以通过在注册表中设置文件映射大小来实现应用程序启动的性能改进。
注释
强烈建议在安装应用程序期间创建新的性能计数器类别,而不是在执行应用程序期间。 这允许操作系统有时间刷新其已注册的性能计数器类别列表。 如果列表尚未刷新,则尝试使用该类别将失败。
注释
若要从 Windows Vista 及更高版本中的非交互式登录会话读取性能计数器、Windows XP Professional x64 Edition 或 Windows Server 2003,你必须是性能监视器用户组的成员或具有管理权限。
若要避免提升特权以访问 Windows Vista 及更高版本中的性能计数器,请将自己添加到性能监视器用户组。
在 Windows Vista 及更高版本中,用户帐户控制(UAC)确定用户的权限。 如果你是内置管理员组的成员,则分配有两个运行时访问令牌:标准用户访问令牌和管理员访问令牌。 默认情况下,你处于标准用户角色。 若要执行访问性能计数器的代码,必须先将特权从标准用户提升到管理员。 在启动应用程序时,可以右键单击应用程序图标并指示要以管理员身份运行。