InstanceData クラス
パフォーマンス カウンタのサンプルに関連付けられたインスタンス データを保持します。
名前空間: System.Diagnostics
アセンブリ: System (system.dll 内)
構文
'宣言
Public Class InstanceData
'使用
Dim instance As InstanceData
public class InstanceData
public ref class InstanceData
public class InstanceData
public class InstanceData
使用例
ローカル コンピュータの特定の 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
using System;
using System.Diagnostics;
class InstDataCopyToMod
{
private static string categoryName;
public static void Main()
{
string catNumStr;
int categoryNum;
PerformanceCounterCategory[] categories = PerformanceCounterCategory.GetCategories();
// Create and sort an array of category names.
string[] categoryNames = new string[categories.Length];
int catX;
for(catX=0; catX<categories.Length; catX++)
{
categoryNames[catX] = categories[catX].CategoryName;
}
Array.Sort(categoryNames);
Console.WriteLine("These categories are registered on this computer:");
for(catX=0; catX<categories.Length; catX++)
{
Console.WriteLine("{0,4} - {1}", catX+1, categoryNames[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 = int.Parse(catNumStr);
if (categoryNum<1||categoryNum>categories.Length)
{
throw new Exception(String.Format("The category number must be in the " +
"range 1..{0}.", categories.Length));
}
categoryName = categoryNames[(categoryNum-1)];
}
catch(Exception ex)
{
Console.WriteLine("\"{0}\" is not a valid category number." +
"\r\n{1}", catNumStr, ex.Message);
return;
}
// 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);
// Copy and process the InstanceDataCollection array.
idColCol.CopyTo(idColArray, 0);
foreach ( InstanceDataCollection idCol in idColArray )
{
ProcessInstanceDataCollection(idCol);
}
}
// Display the contents of an InstanceDataCollection.
public static void ProcessInstanceDataCollection(InstanceDataCollection idCol)
{
InstanceData[] instDataArray = new InstanceData[idCol.Count];
Console.WriteLine(" InstanceDataCollection for \"{0}\" " +
"has {1} elements.", idCol.CounterName, idCol.Count);
// Copy and process the InstanceData array.
idCol.CopyTo(instDataArray, 0);
int idX;
for(idX=0; idX<instDataArray.Length; idX++)
{
ProcessInstanceDataObject(instDataArray[idX].InstanceName, instDataArray[idX].Sample);
}
}
// Display the contents of an InstanceData object.
public static void ProcessInstanceDataObject(string name, CounterSample CSRef)
{
InstanceData instData = new InstanceData(name, CSRef);
Console.WriteLine(" Data from InstanceData object:\r\n" +
" InstanceName: {0,-31} RawValue: {1}", instData.InstanceName, instData.RawValue);
CounterSample sample = instData.Sample;
Console.WriteLine(" Data from CounterSample object:\r\n" +
" CounterType: {0,-32} SystemFrequency: {1}\r\n" +
" BaseValue: {2,-34} RawValue: {3}\r\n" +
" CounterFrequency: {4,-27} CounterTimeStamp: {5}\r\n" +
" TimeStamp: {6,-34} TimeStamp100nSec: {7}", sample.CounterType, sample.SystemFrequency, sample.BaseValue, sample.RawValue, sample.CounterFrequency, sample.CounterTimeStamp, sample.TimeStamp, sample.TimeStamp100nSec);
}
}
継承階層
System.Object
System.Diagnostics.InstanceData
スレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォーム
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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 2.0、1.1、1.0