InstanceData Class
Holds instance data associated with a performance counter sample.
Assembly: System (in System.dll)
The following code example displays the contents of the InstanceData objects that exist in a particular PerformanceCounterCategory on the local computer. It first displays a numbered list of PerformanceCounter categories. After the user enters the number of one of the categories, the sample displays, for each PerformanceCounter in the PerformanceCounterCategory, the instance data associated with each instance of the PerformanceCounter.
Imports System Imports System.Diagnostics Imports Microsoft.VisualBasic Module InstDataCopyToMod Private categoryName As String Sub Main() Dim catNumStr As String Dim categoryNum As Integer Dim categories() As PerformanceCounterCategory = _ PerformanceCounterCategory.GetCategories() ' Create and sort an array of category names. Dim categoryNames(categories.Length - 1) As String Dim catX As Integer For catX = 0 To categories.Length - 1 categoryNames(catX) = categories(catX).CategoryName Next Array.Sort(categoryNames) Console.WriteLine( _ "These categories are registered on this computer:") For catX = 0 To categories.Length - 1 Console.WriteLine("{0,4} - {1}", catX + 1, _ categoryNames(catX)) Next catX ' Ask the user to choose a category. Console.Write( _ "Enter the category number from the above list: ") catNumStr = Console.ReadLine() ' Validate the entered category number. Try categoryNum = Integer.Parse(catNumStr) If categoryNum < 1 Or categoryNum > categories.Length Then Throw New Exception( _ String.Format("The category number must be in the " & _ "range 1..{0}.", categories.Length)) End If categoryName = categoryNames((categoryNum - 1)) Catch ex As Exception Console.WriteLine("""{0}"" is not a valid category number." & _ vbCrLf & "{1}", catNumStr, ex.Message) Return End Try ' 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) ' Copy and process the InstanceDataCollection array. idColCol.CopyTo(idColArray, 0) Dim idCol As InstanceDataCollection For Each idCol In idColArray ProcessInstanceDataCollection(idCol) Next idCol End Sub ' Display the contents of an InstanceDataCollection. Sub ProcessInstanceDataCollection(ByVal idCol As InstanceDataCollection) Dim instDataArray(idCol.Count - 1) As InstanceData Console.WriteLine(" InstanceDataCollection for ""{0}"" " & _ "has {1} elements.", idCol.CounterName, idCol.Count) ' Copy and process the InstanceData array. idCol.CopyTo(instDataArray, 0) Dim idX As Integer For idX = 0 To instDataArray.Length - 1 ProcessInstanceDataObject(instDataArray(idX).InstanceName, _ instDataArray(idX).Sample) Next idX End Sub ' Display the contents of an InstanceData object. Sub ProcessInstanceDataObject(ByVal name As String, _ ByVal CSRef As CounterSample) Dim instData As New InstanceData(name, CSRef) Console.WriteLine(" Data from InstanceData object:" & vbCrLf & _ " InstanceName: {0,-31} RawValue: {1}", _ instData.InstanceName, instData.RawValue) Dim sample As CounterSample = instData.Sample Console.WriteLine(" Data from CounterSample object:" & vbCrLf & _ " CounterType: {0,-32} SystemFrequency: {1}" & vbCrLf & _ " BaseValue: {2,-34} RawValue: {3}" & vbCrLf & _ " CounterFrequency: {4,-27} CounterTimeStamp: {5}" & vbCrLf & _ " TimeStamp: {6,-34} TimeStamp100nSec: {7}", _ sample.CounterType, sample.SystemFrequency, sample.BaseValue, _ sample.RawValue, sample.CounterFrequency, sample.CounterTimeStamp, _ sample.TimeStamp, sample.TimeStamp100nSec) End Sub End Module
Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.