PerformanceCounterCategory.ReadCategory 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
读取与此性能计数器类别关联的所有计数器和性能对象实例数据。
public:
System::Diagnostics::InstanceDataCollectionCollection ^ ReadCategory();
public System.Diagnostics.InstanceDataCollectionCollection ReadCategory ();
member this.ReadCategory : unit -> System.Diagnostics.InstanceDataCollectionCollection
Public Function ReadCategory () As InstanceDataCollectionCollection
返回
一个 InstanceDataCollectionCollection,它包含类别的计数器和性能对象实例数据。
例外
CategoryName 属性为 null
。 可能尚未设置该属性。
对基础系统 API 的调用失败。
以不具有管理特权的用户身份正在执行的代码尝试读取性能计数器。
示例
下面的代码示例为指定PerformanceCounterCategory名称创建 PerformanceCounterCategory 。 然后,它使用 ReadCategory 返回一个 ,InstanceDataCollectionCollection其中包含 中PerformanceCounterCategory对象的所有实例的PerformanceCounter实例数据。
// Process the InstanceDataCollectionCollection for this category.
PerformanceCounterCategory pcc = new PerformanceCounterCategory(categoryName);
InstanceDataCollectionCollection idColCol = pcc.ReadCategory();
InstanceDataCollection[] idColArray = new InstanceDataCollection[idColCol.Count];
Console.WriteLine("InstanceDataCollectionCollection for \"{0}\" " +
"has {1} elements.", categoryName, idColCol.Count);
' Process the InstanceDataCollectionCollection for this category.
Dim pcc As New PerformanceCounterCategory(categoryName)
Dim idColCol As InstanceDataCollectionCollection = pcc.ReadCategory()
Dim idColArray(idColCol.Count - 1) As InstanceDataCollection
Console.WriteLine("InstanceDataCollectionCollection for ""{0}"" " & _
"has {1} elements.", categoryName, idColCol.Count)
注解
在调用 ReadCategory之前,CategoryName必须设置 属性。
由于系统提供数据的方式,一次读取整个类别可以与读取单个计数器一样高效。
注意
若要从 Windows Vista 及更高版本、Windows XP Professional x64 Edition 或 Windows Server 2003 中的非交互式登录会话读取性能计数器,你必须是 性能监视器 用户组的成员或具有管理权限。
若要避免在 Windows Vista 及更高版本中提升访问性能计数器的权限,请将自己添加到 性能监视器 用户组。
在 Windows Vista 或更高版本中,用户帐户控制 (UAC) 决定用户的特权。 如果您是内置的 Administrators 组的成员,将为您分配两个运行时访问令牌:一个标准用户访问令牌和一个管理员访问令牌。 默认情况下,您拥有标准用户角色。 若要执行访问性能计数器的代码,必须先将权限从标准用户提升为管理员。 你可以通过以下方式执行此操作:右键单击应用程序图标并指示需以管理员身份运行。