Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase InstanceData

 

Publicado: octubre de 2016

Contiene los datos de instancia asociados a una muestra de contador de rendimiento.

Espacio de nombres:   System.Diagnostics
Ensamblado:  System (en System.dll)

System::Object
  System.Diagnostics::InstanceData

public ref class InstanceData 

NombreDescripción
System_CAPS_pubmethodInstanceData(String^, CounterSample)

Inicializa una nueva instancia de la clase InstanceData, utilizando la instancia especificada de contador de rendimiento y de ejemplo.

NombreDescripción
System_CAPS_pubpropertyInstanceName

Obtiene el nombre de instancia asociado a estos datos de instancia.

System_CAPS_pubpropertyRawValue

Obtiene el valor de datos sin formato asociado a la muestra de contador de rendimiento.

System_CAPS_pubpropertySample

Obtiene la muestra del contador de rendimiento que generó estos datos.

NombreDescripción
System_CAPS_pubmethodEquals(Object^)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

En el ejemplo de código siguiente se muestra el contenido de la InstanceData objetos que existen en un determinado PerformanceCounterCategory en el equipo local. Primero se muestra una lista numerada de PerformanceCounter categorías. Cuando el usuario introduce el número de una de las categorías, el ejemplo muestra, para cada PerformanceCounter en la PerformanceCounterCategory, los datos de instancia asociados a cada instancia de la PerformanceCounter.

// InstanceData_CopyTo.cpp : main project file.
#using <System.dll>

using namespace System;
using namespace System::Diagnostics;


///////////////////////////////////////////////////////////////////////
//
// FORWARD DECLARATIONS
//
///////////////////////////////////////////////////////////////////////

// Console Utility Functions:
void InitConsole();                          // Init console size
void TitleBlock();                           // Write the title block
void CW(String^strText ,                    // Write a colored string
        String^ C = "", int LF = 1);


// InstanceData subroutines
// Display the contents of an InstanceData object.
void ProcessInstanceDataObject(String^ name, CounterSample CSRef);

// Display the contents of an InstanceDataCollection.
void ProcessInstanceDataCollection(InstanceDataCollection^ idCol);




///////////////////////////////////////////////////////////////////////
//
// MAIN PROGRAM
//
///////////////////////////////////////////////////////////////////////

void main()
{
    InitConsole();
    TitleBlock();

    String^ categoryName;
    String^ catNumStr;
    int      categoryNum;


    array<PerformanceCounterCategory^>^ categories =
                PerformanceCounterCategory::GetCategories();

    // Create and sort an array of category names.
    array<String^>^ categoryNames = gcnew array<String^>(categories->Length);
    int catX;
    for(catX=0; catX < categories->Length; catX++)
            categoryNames[catX] = categories[catX]->CategoryName;
    Array::Sort(categoryNames);

    while(1)
    {
    CW("These PerformanceCounterCategory categories are registered \n"
      +"on this computer:","Red");

    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("\nEnter a 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 gcnew Exception(String::Format("The category number "+
                  " must be in the range 1..{0}.", categories->Length));
        categoryName = categoryNames[(categoryNum-1)];

        // Process the InstanceDataCollectionCollection for this category.
        PerformanceCounterCategory^ pcc =
             gcnew PerformanceCounterCategory(categoryName);
        InstanceDataCollectionCollection^ idColCol = pcc->ReadCategory();
        array<InstanceDataCollection^>^ idColArray =
             gcnew array<InstanceDataCollection^>(idColCol->Count);

        CW("\nInstanceDataCollectionCollection for \"" +categoryName+"\" "
           +"has "+idColCol->Count+" elements.","Blue");

        idColCol->CopyTo(idColArray, 0);

        for each ( InstanceDataCollection ^ idCol in idColArray )
                ProcessInstanceDataCollection(idCol);
        }
    catch(Exception^ ex)
        {
        Console::WriteLine("\"{0}\" is not a valid category number." +
            "\n{1}", catNumStr, ex->Message);
        }

    CW("\n\nRun again (Y,N)?","Yellow");
    catNumStr = Console::ReadLine();
    if ("Y" != catNumStr && "y" != catNumStr) break;
    }
}


///////////////////////////////////////////////////////////////////////
//
// SUBROUTINES
//
///////////////////////////////////////////////////////////////////////

void InitConsole() 
{
  Console::BufferHeight = 4000;
  Console::WindowHeight = 40;
}

void TitleBlock()
{
Console::Title = "InstDataCopyTo.cpp Sample";

CW(
 "///////////////////////////////////////////////////////////////////\n"
+"//\n"
+"//  PROGRAM   instdatacopyto.cpp\n"
+"//  PURPOSE   Show how to use InstanceData objects\n"
+"//  OUTPUT    1) Displays a numbered list of PerformanceCounter\n"
+"//               categories that exist on the local computer.\n"
+"//            2) Prompts the user to select a category.\n"
+"//            3) Displays the instance data associated with each\n"
+"//               instance of the PerformanceCounter in the\n"
+"//               selected PerformanceCounterCategory\n"
+"//\n"
+ "///////////////////////////////////////////////////////////////////\n"
,"Yellow");
}


// Utility function:  ConsoleWrite:  Write a colored string
void CW(String^ strText , String^ C, int LF)
{
   if (C != "") Console::ForegroundColor =  *dynamic_cast<ConsoleColor^>
                               (Enum::Parse(ConsoleColor::typeid, C));
   Console::Write(strText);
   Console::ResetColor();
   Console::Write("\n{0}",LF?"\n":"");
}

// Display the contents of an InstanceDataCollection.
void ProcessInstanceDataCollection(InstanceDataCollection ^ idCol)
{
    array<InstanceData^>^ instDataArray = gcnew array<InstanceData^>(idCol->Count);

    CW("\n  InstanceDataCollection for \""
       + idCol->CounterName + "\" has " + idCol->Count + " elements.", "Red");

    // 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.
void ProcessInstanceDataObject(String ^ name, CounterSample CSRef)
{
    InstanceData ^ instData = gcnew InstanceData(name, CSRef);
    CW("    Data from InstanceData object:","Red",0);

    CW("      InstanceName:     "+instData->InstanceName,"Green",0);
    CW("      RawValue:         " + instData->RawValue);

    CounterSample sample = instData->Sample;
    Console::Write("    Data from CounterSample object:\n" +
        "      CounterType:      {0,-27} SystemFrequency:  {1}\n" +
        "      BaseValue:        {2,-27} RawValue:         {3}\n" +
        "      CounterFrequency: {4,-27} CounterTimeStamp: {5}\n" +
        "      TimeStamp:        {6,-27} TimeStamp100nSec: {7}\n\n",
        sample.CounterType, sample.SystemFrequency, sample.BaseValue,
        sample.RawValue, sample.CounterFrequency, sample.CounterTimeStamp,
        sample.TimeStamp, sample.TimeStamp100nSec);
}

.NET Framework
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: