Freigeben über


InstanceData-Klasse

Enthält die einer Leitungsindikatormessung zugeordneten Instanzdaten.

Namespace: System.Diagnostics
Assembly: System (in system.dll)

Syntax

'Declaration
Public Class InstanceData
'Usage
Dim instance As InstanceData
public class InstanceData
public ref class InstanceData
public class InstanceData
public class InstanceData

Beispiel

Im folgenden Codebeispiel wird der Inhalt der InstanceData-Objekte angezeigt, die in einer bestimmten PerformanceCounterCategory auf dem lokalen Computer vorhanden sind. Zunächst wird eine nummerierte Liste von PerformanceCounter-Kategorien angezeigt. Nachdem der Benutzer die Nummer einer der Kategorien eingegeben hat, werden im Beispiel für jeden PerformanceCounter in PerformanceCounterCategory die Instanzdaten angezeigt, die den einzelnen Instanzen von PerformanceCounter zugeordnet sind.

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

Vererbungshierarchie

System.Object
  System.Diagnostics.InstanceData

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

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 unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

InstanceData-Member
System.Diagnostics-Namespace