InstanceData クラス
アセンブリ: System (system.dll 内)


ローカル コンピュータの特定の PerformanceCounterCategory に存在する InstanceData オブジェクトのコンテンツを表示するコード例を次に示します。最初に PerformanceCounter カテゴリの名前の番号付きりストが表示されます。ユーザーがカテゴリの 1 つの番号を入力すると、PerformanceCounterCategory 内の各 PerformanceCounter のサンプル (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

System.Diagnostics.InstanceData


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- InstanceData クラスのページへのリンク