PerformanceCounter 构造函数
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
初始化 PerformanceCounter 类的新实例。
重载
PerformanceCounter() |
初始化 PerformanceCounter 类的新的只读实例,但不将该实例与任何系统性能计数器或自定义性能计数器关联。 |
PerformanceCounter(String, String) |
初始化 PerformanceCounter 类的新的只读实例,并将其与本地计算机上指定的系统性能计数器或自定义性能计数器关联。 此构造函数要求该类别包含单个实例。 |
PerformanceCounter(String, String, Boolean) |
初始化 PerformanceCounter 类的新的只读或读/写实例,并将其与本地计算机上指定的系统性能计数器或自定义性能计数器关联。 此构造函数要求该类别包含单个实例。 |
PerformanceCounter(String, String, String) |
初始化 PerformanceCounter 类的新的只读实例,并将其与本地计算机上指定的系统性能计数器或自定义性能计数器及类别实例关联。 |
PerformanceCounter(String, String, String, Boolean) |
初始化 PerformanceCounter 类的新的只读实例或读/写实例,并将其与本地计算机上指定的系统性能计数器或自定义性能计数器及类别实例关联。 |
PerformanceCounter(String, String, String, String) |
初始化 PerformanceCounter 类的新的只读实例,并将其与指定计算机上指定的系统性能计数器或自定义性能计数器及类别实例关联。 |
PerformanceCounter()
- Source:
- PerformanceCounter.cs
- Source:
- PerformanceCounter.cs
- Source:
- PerformanceCounter.cs
初始化 PerformanceCounter 类的新的只读实例,但不将该实例与任何系统性能计数器或自定义性能计数器关联。
public:
PerformanceCounter();
public PerformanceCounter ();
Public Sub New ()
示例
下面的代码示例创建 类的默认实例 PerformanceCounter 。 创建实例后, CategoryName将设置 、 CounterName和 InstanceName 属性值,并显示调用 NextValue 方法的结果。
PerformanceCounter^ PC = gcnew PerformanceCounter;
PC->CategoryName = "Process";
PC->CounterName = "Private Bytes";
PC->InstanceName = "Explorer";
MessageBox::Show( PC->NextValue().ToString() );
PerformanceCounter performanceCounter = new PerformanceCounter();
performanceCounter.CategoryName = "Process";
performanceCounter.CounterName = "Private Bytes";
performanceCounter.InstanceName = "Explorer";
MessageBox.Show(performanceCounter.NextValue().ToString());
Dim PC As New PerformanceCounter()
PC.CategoryName = "Process"
PC.CounterName = "Private Bytes"
PC.InstanceName = "Explorer"
MessageBox.Show(PC.NextValue().ToString())
注解
构造函数的此重载将 CategoryName、 CounterName和 InstanceName 属性设置为空字符串 (“”) ,并将 属性设置为 MachineName 本地计算机, (”。) 。
此构造函数不会初始化性能计数器,因此它不会将 实例与本地计算机上的现有计数器相关联。 若要指向特定的性能计数器,请在CategoryName读取任何其他属性或尝试从计数器读取之前设置 、 CounterName和 MachineName 属性(可选InstanceName)。 若要写入性能计数器,请将 属性 ReadOnly 设置为 false
。
注意
HostProtectionAttribute应用于此成员的属性具有以下Resources属性值:Synchronization | SharedState。 HostProtectionAttribute 不影响桌面应用程序(通常通过双击图标、键入命令或在浏览器中输入 URL 来启动这些应用程序)。 有关详细信息,请参阅 HostProtectionAttribute 类或SQL Server编程和主机保护属性。
适用于
PerformanceCounter(String, String)
- Source:
- PerformanceCounter.cs
- Source:
- PerformanceCounter.cs
- Source:
- PerformanceCounter.cs
初始化 PerformanceCounter 类的新的只读实例,并将其与本地计算机上指定的系统性能计数器或自定义性能计数器关联。 此构造函数要求该类别包含单个实例。
public:
PerformanceCounter(System::String ^ categoryName, System::String ^ counterName);
public PerformanceCounter (string categoryName, string counterName);
new System.Diagnostics.PerformanceCounter : string * string -> System.Diagnostics.PerformanceCounter
Public Sub New (categoryName As String, counterName As String)
参数
- categoryName
- String
此性能计数器关联的性能计数器类别(性能对象)的名称。
- counterName
- String
性能计数器的名称。
例外
categoryName
为空字符串 ("")。
- 或 -
counterName
为空字符串 ("")。
- 或 -
指定的类别不存在。
- 或 -
指定的类别被标记为多实例,并且要求使用实例名称创建性能计数器。
- 或 -
categoryName
和 counterName
已本地化为不同的语言。
categoryName
或 counterName
为 null
。
访问 API 时出错。
以不具有管理特权的用户身份正在执行的代码尝试读取性能计数器。
注解
参数字符串不区分大小写。
使用此重载访问属于包含单个性能计数器类别实例的类别的本地计算机上的计数器。 如果尝试使用此构造函数将此 PerformanceCounter 实例指向包含多个实例的类别,该构造函数将引发异常。 此重载可以访问任何只读或读/写计数器,但在只读模式下执行此操作。 PerformanceCounter使用此重载创建的实例无法写入计数器,即使计数器本身是可读/写的。
构造函数的此重载将 和 CounterName 属性设置为CategoryName传入的值,将 MachineName 属性设置为本地计算机“.”,并将 属性设置为InstanceName空字符串 (“”) 。
此构造函数初始化性能计数器,并将 实例与现有计数器相关联, (本地计算机上的系统计数器或自定义计数器) 。 为 CategoryName 和 CounterName 属性传入的值必须指向本地计算机上的现有性能计数器。
注意
若要从 Windows Vista 及更高版本、Windows XP Professional x64 Edition 或 Windows Server 2003 中的非交互式登录会话读取性能计数器,你必须是 性能监视器 用户组的成员或具有管理权限。
若要避免在 Windows Vista 中提升访问性能计数器的权限,请将自己添加到性能监视器用户组。
在 Windows Vista 中,用户帐户控制 (UAC) 决定用户的特权。 如果您是内置的 Administrators 组的成员,将为您分配两个运行时访问令牌:一个标准用户访问令牌和一个管理员访问令牌。 默认情况下,您拥有标准用户角色。 若要执行访问性能计数器的代码,必须先将特权从标准用户提升为管理员。 你可以通过以下方式执行此操作:右键单击应用程序图标并指示需以管理员身份运行。
适用于
PerformanceCounter(String, String, Boolean)
- Source:
- PerformanceCounter.cs
- Source:
- PerformanceCounter.cs
- Source:
- PerformanceCounter.cs
初始化 PerformanceCounter 类的新的只读或读/写实例,并将其与本地计算机上指定的系统性能计数器或自定义性能计数器关联。 此构造函数要求该类别包含单个实例。
public:
PerformanceCounter(System::String ^ categoryName, System::String ^ counterName, bool readOnly);
public PerformanceCounter (string categoryName, string counterName, bool readOnly);
new System.Diagnostics.PerformanceCounter : string * string * bool -> System.Diagnostics.PerformanceCounter
Public Sub New (categoryName As String, counterName As String, readOnly As Boolean)
参数
- categoryName
- String
此性能计数器关联的性能计数器类别(性能对象)的名称。
- counterName
- String
性能计数器的名称。
- readOnly
- Boolean
若要以只读模式访问计数器(但计数器本身可能是可读/写的),则为 true
;若要以读/写模式访问计数器,则为 false
。
例外
categoryName
是空字符串 ("")。
- 或 -
counterName
是空字符串 ("")。
- 或 -
指定的类别不存在。 (如果 readOnly
为 true
)。
- 或 -
指定的类别不是 .NET Framework 自定义类别(如果 readOnly
为 false
)。
- 或 -
指定的类别被标记为多实例,并且要求使用实例名称创建性能计数器。
- 或 -
categoryName
和 counterName
已本地化为不同的语言。
categoryName
或 counterName
为 null
。
访问 API 时出错。
以不具有管理特权的用户身份正在执行的代码尝试读取性能计数器。
示例
下面的代码示例创建 类的 PerformanceCounter 实例。 该示例传入类别名称、计数器名称和指示计数器不是只读的标志值。 此代码示例是 类的较大示例的 PerformanceCounter 一部分。
PC = gcnew PerformanceCounter( "AverageCounter64SampleCategory","AverageCounter64Sample",false );
avgCounter64Sample = new PerformanceCounter("AverageCounter64SampleCategory",
"AverageCounter64Sample",
false);
avgCounter64Sample = New PerformanceCounter("AverageCounter64SampleCategory", "AverageCounter64Sample", False)
注解
参数字符串不区分大小写。
使用此重载访问属于包含单个性能计数器类别实例的类别的本地计算机上的只读或读/写计数器。 如果尝试使用此构造函数将此 PerformanceCounter 实例指向包含多个实例的类别,该构造函数将引发异常。
构造函数的此重载将 、 和 属性设置为CategoryName传入的值,将 属性设置为MachineName本地计算机“.”,并将 属性设置为InstanceName空字符串 (“”ReadOnly) 。 CounterName
此构造函数初始化性能计数器,并将 实例与现有计数器相关联, (本地计算机上的系统计数器或自定义计数器) 。 为 CategoryName 和 CounterName 属性传入的值必须指向本地计算机上的现有性能计数器。 如果指向的性能计数器实例无效,则调用构造函数将引发异常。
注意
可以使用此重载连接到系统计数器,但不能写入系统计数器。 因此,在连接到系统计数器时将 设置为 readOnly
false
会导致构造函数引发异常。
注意
若要从 Windows Vista 及更高版本、Windows XP Professional x64 Edition 或 Windows Server 2003 中的非交互式登录会话读取性能计数器,你必须是 性能监视器 用户组的成员或具有管理权限。
若要避免在 Windows Vista 中提升访问性能计数器的权限,请将自己添加到性能监视器用户组。
在 Windows Vista 中,用户帐户控制 (UAC) 决定用户的特权。 如果您是内置的 Administrators 组的成员,将为您分配两个运行时访问令牌:一个标准用户访问令牌和一个管理员访问令牌。 默认情况下,您拥有标准用户角色。 若要执行访问性能计数器的代码,必须先将特权从标准用户提升为管理员。 你可以通过以下方式执行此操作:右键单击应用程序图标并指示需以管理员身份运行。
适用于
PerformanceCounter(String, String, String)
- Source:
- PerformanceCounter.cs
- Source:
- PerformanceCounter.cs
- Source:
- PerformanceCounter.cs
初始化 PerformanceCounter 类的新的只读实例,并将其与本地计算机上指定的系统性能计数器或自定义性能计数器及类别实例关联。
public:
PerformanceCounter(System::String ^ categoryName, System::String ^ counterName, System::String ^ instanceName);
public PerformanceCounter (string categoryName, string counterName, string instanceName);
new System.Diagnostics.PerformanceCounter : string * string * string -> System.Diagnostics.PerformanceCounter
Public Sub New (categoryName As String, counterName As String, instanceName As String)
参数
- categoryName
- String
此性能计数器关联的性能计数器类别(性能对象)的名称。
- counterName
- String
性能计数器的名称。
- instanceName
- String
性能计数器类别实例的名称,或者为空字符串 ("")(如果该类别包含单个实例)。
例外
categoryName
为空字符串 ("")。
- 或 -
counterName
为空字符串 ("")。
- 或 -
指定的类别无效。
- 或 -
指定的类别被标记为多实例,并且要求使用实例名称创建性能计数器。
- 或 -
instanceName
的长度超过 127 个字符。
- 或 -
categoryName
和 counterName
已本地化为不同的语言。
categoryName
或 counterName
为 null
。
访问 API 时出错。
以不具有管理特权的用户身份正在执行的代码尝试读取性能计数器。
注解
参数字符串不区分大小写。
构造函数的此重载将 CategoryName、 CounterName和 InstanceName 属性设置为传入的值,并将 属性设置为 MachineName 本地计算机“.”。
此构造函数初始化性能计数器,并将 实例与现有计数器相关联, (本地计算机上的系统计数器或自定义计数器) 。 为 CategoryName、 CounterName和 InstanceName 属性传入的值必须指向本地计算机上的现有性能计数器。 如果指向的性能计数器实例无效,则调用构造函数将引发异常。
此重载可以访问任何只读或读/写计数器,但在只读模式下执行此操作。 PerformanceCounter使用此重载创建的实例无法写入计数器,即使计数器本身是可读/写的。
若要创建性能类别实例,请在 instanceName
构造函数上 PerformanceCounter 指定 。 如果指定的 instanceName
类别实例已存在,则新对象将引用现有的类别实例。
注意
若要读取 Windows Vista、Windows XP Professional x64 Edition 或 Windows Server 2003 中的性能计数器,你必须是 性能监视器 用户组的成员或具有管理权限。
若要避免在 Windows Vista 中提升访问性能计数器的权限,请将自己添加到性能监视器用户组。
在 Windows Vista 中,用户帐户控制 (UAC) 决定用户的特权。 如果您是内置的 Administrators 组的成员,将为您分配两个运行时访问令牌:一个标准用户访问令牌和一个管理员访问令牌。 默认情况下,您拥有标准用户角色。 若要执行访问性能计数器的代码,必须先将特权从标准用户提升为管理员。 你可以通过以下方式执行此操作:右键单击应用程序图标并指示需以管理员身份运行。
适用于
PerformanceCounter(String, String, String, Boolean)
- Source:
- PerformanceCounter.cs
- Source:
- PerformanceCounter.cs
- Source:
- PerformanceCounter.cs
初始化 PerformanceCounter 类的新的只读实例或读/写实例,并将其与本地计算机上指定的系统性能计数器或自定义性能计数器及类别实例关联。
public:
PerformanceCounter(System::String ^ categoryName, System::String ^ counterName, System::String ^ instanceName, bool readOnly);
public PerformanceCounter (string categoryName, string counterName, string instanceName, bool readOnly);
new System.Diagnostics.PerformanceCounter : string * string * string * bool -> System.Diagnostics.PerformanceCounter
Public Sub New (categoryName As String, counterName As String, instanceName As String, readOnly As Boolean)
参数
- categoryName
- String
此性能计数器关联的性能计数器类别(性能对象)的名称。
- counterName
- String
性能计数器的名称。
- instanceName
- String
性能计数器类别实例的名称,或者为空字符串 ("")(如果该类别包含单个实例)。
- readOnly
- Boolean
若要以只读模式访问计数器,则为 true
;若要以读/写模式访问计数器,则为 false
。
例外
categoryName
为空字符串 ("")。
- 或 -
counterName
为空字符串 ("")。
- 或 -
请求的读/写权限设置对此计数器无效。
- 或 -
指定的类别不存在(如果 readOnly
为 true
)。
- 或 -
指定的类别不是 .NET Framework 自定义类别(如果 readOnly
为 false
)。
- 或 -
指定的类别被标记为多实例,并且要求使用实例名称创建性能计数器。
- 或 -
instanceName
的长度超过 127 个字符。
- 或 -
categoryName
和 counterName
已本地化为不同的语言。
categoryName
或 counterName
为 null
。
访问 API 时出错。
以不具有管理特权的用户身份正在执行的代码尝试读取性能计数器。
注解
参数字符串不区分大小写。
使用此重载在只读或读/写模式下访问性能计数器。
构造函数的此重载将 CategoryName、 CounterName和 InstanceName 属性设置为传入的值,并将 属性设置为 MachineName 本地计算机“.”。
此构造函数初始化性能计数器,并将 实例与现有计数器相关联, (本地计算机上的系统计数器或自定义计数器) 。 为 CategoryName、 CounterName和 InstanceName 属性传入的值必须指向本地计算机上的现有性能计数器。 如果指向的性能计数器实例无效,则调用构造函数将引发异常。
注意
可以使用此重载连接到系统计数器,但不能写入系统计数器。 因此,在连接到系统计数器时将 设置为 readOnly
false
会导致构造函数引发异常。
若要创建性能类别实例,请在 instanceName
构造函数上 PerformanceCounter 指定 。 如果指定的 instanceName
类别实例已存在,则新对象将引用现有的类别实例。
注意
若要读取 Windows Vista、Windows XP Professional x64 Edition 或 Windows Server 2003 中的性能计数器,你必须是 性能监视器 用户组的成员或具有管理权限。
若要避免在 Windows Vista 中提升访问性能计数器的权限,请将自己添加到性能监视器用户组。
在 Windows Vista 中,用户帐户控制 (UAC) 决定用户的特权。 如果您是内置的 Administrators 组的成员,将为您分配两个运行时访问令牌:一个标准用户访问令牌和一个管理员访问令牌。 默认情况下,您拥有标准用户角色。 若要执行访问性能计数器的代码,必须先将特权从标准用户提升为管理员。 你可以通过以下方式执行此操作:右键单击应用程序图标并指示需以管理员身份运行。
适用于
PerformanceCounter(String, String, String, String)
- Source:
- PerformanceCounter.cs
- Source:
- PerformanceCounter.cs
- Source:
- PerformanceCounter.cs
初始化 PerformanceCounter 类的新的只读实例,并将其与指定计算机上指定的系统性能计数器或自定义性能计数器及类别实例关联。
public:
PerformanceCounter(System::String ^ categoryName, System::String ^ counterName, System::String ^ instanceName, System::String ^ machineName);
public PerformanceCounter (string categoryName, string counterName, string instanceName, string machineName);
new System.Diagnostics.PerformanceCounter : string * string * string * string -> System.Diagnostics.PerformanceCounter
Public Sub New (categoryName As String, counterName As String, instanceName As String, machineName As String)
参数
- categoryName
- String
此性能计数器关联的性能计数器类别(性能对象)的名称。
- counterName
- String
性能计数器的名称。
- instanceName
- String
性能计数器类别实例的名称,或者为空字符串 ("")(如果该类别包含单个实例)。
- machineName
- String
性能计数器及其关联的类别所在的计算机。
例外
categoryName
为空字符串 ("")。
- 或 -
counterName
为空字符串 ("")。
- 或 -
请求的读/写权限设置对此计数器无效。
- 或 -
指定的计算机上不存在该计数器。
- 或 -
指定的类别被标记为多实例,并且要求使用实例名称创建性能计数器。
- 或 -
instanceName
的长度超过 127 个字符。
- 或 -
categoryName
和 counterName
已本地化为不同的语言。
machineName
参数无效。
categoryName
或 counterName
为 null
。
访问 API 时出错。
以不具有管理特权的用户身份正在执行的代码尝试读取性能计数器。
注解
参数字符串不区分大小写。
构造函数的此重载将 CategoryName、 CounterName、 InstanceName和 MachineName 属性设置为传入的值。
此构造函数初始化性能计数器,并将实例与现有计数器相关联, (指定计算机上的系统计数器或自定义计数器) 。 为 CategoryName、 CounterNameInstanceName 和 MachineName 属性传入的值必须指向现有的性能计数器。 如果指向的性能计数器实例无效,则调用构造函数将引发异常。 此重载可以访问任何只读或读/写计数器,但在只读模式下执行此操作。 PerformanceCounter使用此重载创建的实例无法写入计数器,即使计数器本身是可读/写的。
注意
无法写入远程性能计数器。 没有允许你指定连接到远程计算机的类的 PerformanceCounter 读/写实例的重载。
若要创建性能类别实例,请在 instanceName
构造函数上 PerformanceCounter 指定 。 如果指定的 instanceName
类别实例已存在,则新对象将引用现有的类别实例。
注意
若要读取 Windows Vista、Windows XP Professional x64 Edition 或 Windows Server 2003 中的性能计数器,你必须是 性能监视器 用户组的成员或具有管理权限。
若要避免在 Windows Vista 中提升访问性能计数器的权限,请将自己添加到性能监视器用户组。
在 Windows Vista 中,用户帐户控制 (UAC) 决定用户的特权。 如果您是内置的 Administrators 组的成员,将为您分配两个运行时访问令牌:一个标准用户访问令牌和一个管理员访问令牌。 默认情况下,您拥有标准用户角色。 若要执行访问性能计数器的代码,必须先将特权从标准用户提升为管理员。 你可以通过以下方式执行此操作:右键单击应用程序图标并指示需以管理员身份运行。
注意
在 Windows Vista 中,当远程计算机是工作组的成员时,你可能需要禁用 UAC,以便不会筛选本地用户帐户,并且可以提升为管理员帐户。 出于安全原因,禁用 UAC 应该是最后的手段。 有关禁用 UAC 的信息,请参阅 用户帐户控制和 WMI。