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 CorrelationManager

 

Publicado: octubre de 2016

Correlaciona los seguimientos que forman parte de una transacción lógica.

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

System::Object
  System.Diagnostics::CorrelationManager

public ref class CorrelationManager 

NombreDescripción
System_CAPS_pubpropertyActivityId

Obtiene o establece la identidad de una actividad global.

System_CAPS_pubpropertyLogicalOperationStack

Obtiene la pila de operaciones lógicas del contexto de llamada.

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_pubmethodStartLogicalOperation()

Inicia una operación lógica en un subproceso.

System_CAPS_pubmethodStartLogicalOperation(Object^)

Inicia una operación lógica con la identidad especificada en un subproceso.

System_CAPS_pubmethodStopLogicalOperation()

Detiene la operación lógica actual.

System_CAPS_pubmethodToString()

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

Los seguimientos de una única operación lógica se pueden etiquetar con una identidad única de la operación, para distinguirlos de los seguimientos de otra operación lógica. Por ejemplo, puede ser útil agrupar los seguimientos correlacionados por la solicitud de ASP.NET. La CorrelationManager clase proporciona métodos que se utilizan para almacenar una identidad de operación lógica en un contexto enlazado de subproceso y etiquetar automáticamente cada evento de seguimiento generado por el subproceso con la identidad almacenada.

También se pueden anidar las operaciones lógicas. El LogicalOperationStack propiedad expone la pila de identidades de operaciones lógicas anidadas. Cada llamada a la StartLogicalOperation método inserta una nueva identidad de operación lógica en la pila. Cada llamada a la StopLogicalOperation método extrae una identidad de operación lógica de la pila.

System_CAPS_noteNota

Las identidades de operación lógica son objetos, lo que permite el uso de un tipo para una identidad de operación lógica.

En el ejemplo de código siguiente se muestra el uso de la CorrelationManager clase mediante la identificación de la operación lógica asociada a un evento de seguimiento. Se inician dos operaciones lógicas, una en el subproceso principal y la otra en un subproceso de trabajo. Se registra un evento de error en ambas operaciones lógicas.

#using <System.dll>

using namespace System;
using namespace System::Collections::Generic;
using namespace System::Text;
using namespace System::Diagnostics;
using namespace System::Threading;

void ThreadProc()
{
    TraceSource^ ts = gcnew TraceSource("MyApp");
    int i = ts->Listeners->Add(gcnew ConsoleTraceListener());
    ts->Listeners[i]->TraceOutputOptions = TraceOptions::LogicalOperationStack;
    ts->Switch = gcnew SourceSwitch("MyAPP", "Verbose");
    // Add another logical operation.
    Trace::CorrelationManager->StartLogicalOperation("WorkerThread");

    ts->TraceEvent(TraceEventType::Error, 1, "Trace an error event.");
    Trace::CorrelationManager->StopLogicalOperation();
}

void main()
{
    TraceSource^ ts = gcnew TraceSource("MyApp");
    int i = ts->Listeners->Add(gcnew ConsoleTraceListener());
    ts->Listeners[i]->TraceOutputOptions = TraceOptions::LogicalOperationStack;
    ts->Switch = gcnew SourceSwitch("MyAPP", "Verbose");
    // Start the logical operation on the Main thread.
    Trace::CorrelationManager->StartLogicalOperation("MainThread");

    ts->TraceEvent(TraceEventType::Error, 1, "Trace an error event.");
    Thread^ t = gcnew Thread(gcnew ThreadStart(ThreadProc));
//   Start the worker thread.
    t->Start();
//  Give the worker thread a chance to execute.
    Thread::Sleep(1000);
    Trace::CorrelationManager->StopLogicalOperation();}



// This sample generates the following output:
//MyApp Error: 1 : Trace an error event.
//    LogicalOperationStack=MainThread
//MyApp Error: 1 : Trace an error event.
//    LogicalOperationStack=WorkerThread, MainThread

.NET Framework
Disponible desde 2.0

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: