Compartir a través de


Thread2.Parent (Propiedad)

Obtiene el objeto primario inmediato de un objeto Thread.

Espacio de nombres:  EnvDTE90
Ensamblado:  EnvDTE90 (en EnvDTE90.dll)

Sintaxis

'Declaración
ReadOnly Property Parent As Debugger
    Get
Debugger Parent { get; }
property Debugger^ Parent {
    Debugger^ get ();
}
abstract Parent : Debugger
function get Parent () : Debugger

Valor de propiedad

Tipo: EnvDTE.Debugger
Objeto Debugger3.

Implementaciones

Thread.Parent

Comentarios

La propiedad Parent devuelve el objeto primario inmediato del objeto Thread2. Para obtener la colección contenedora, utilice la propiedad Collection.

Ejemplos

En el siguiente ejemplo se muestra cómo utilizar la propiedad Collection.

Para probar esta propiedad:

  1. Establezca el punto de interrupción dentro del método de devolución de llamada del subproceso de trabajo.

  2. Ejecute la aplicación de destino en el modo de depuración.

  3. Cuando la aplicación se detenga en el punto de interrupción, ejecute el complemento.

public static void TestThreadProperties(DTE2 dte)
{
    // Setup debug Output window.
    Window w = 
      (Window)dte.Windows.Item(EnvDTE.Constants.vsWindowKindOutput);
    w.Visible = true;
    OutputWindow ow = (OutputWindow)w.Object;
    OutputWindowPane owp = ow.OutputWindowPanes.Add("Thread Test");
    owp.Activate();

    EnvDTE.Threads threads = dte.Debugger.CurrentProgram.Threads;
    owp.OutputString("\nNumber of items in the Thread collection: " + 
      threads.Item(1).Collection.Count + "\n");
    foreach(EnvDTE90.Thread2 thread in threads)
    {
        owp.OutputString("\nThread: " + thread.ID + "  Name: " + 
          thread.Name);
        owp.OutputString("\n  Edition of the environment : " + 
          thread.DTE.Edition);
        owp.OutputString("\n  Is alive                   : " + 
          thread.IsAlive);
        owp.OutputString("\n  Is frozen                  : " + 
          thread.IsFrozen);
        owp.OutputString("\n  Location                   : " + 
          thread.Location);
        owp.OutputString("\n  Parent's current mode      : " + 
          thread.Parent.CurrentMode);
        owp.OutputString("\n  Priority                   : " + 
          thread.Priority);
        owp.OutputString("\n  Program name               : " + 
          thread.Program.Name);
        owp.OutputString("\n  Number of stack frames     : " + 
          thread.StackFrames.Count);
        owp.OutputString("\n  Suspended number of times  : " + 
          thread.SuspendCount);
        owp.OutputString("\n  Flag on the thread  : " + thread.Flag);
    }
}
Shared Sub ThreadProperties(ByRef dte As EnvDTE80.DTE2)
    Dim str As String
    Dim threads As EnvDTE.Threads = dte.Debugger.CurrentProgram.Threads
    str = "Number of items in the Thread collection: " + _
      threads.Item(1).Collection.Count.ToString()
    For Each thread As EnvDTE90.Thread2 In threads
        str += vbCrLf + vbCrLf + "  Thread: " + thread.ID.ToString()
        str += vbCrLf + "    Edition of the environment: " + 
          thread.DTE.Edition
        str += vbCrLf + "    Is alive: " + thread.IsAlive.ToString()
        str += vbCrLf + "    Is frozen: " + thread.IsFrozen.ToString()
        str += vbCrLf + "    Location: " + thread.Location
        str += vbCrLf + "    Parent's current mode: " + _
               thread.Parent.CurrentMode.ToString()
        str += vbCrLf + "    Priority: " + thread.Priority
        str += vbCrLf + "    Program name: " + thread.Program.Name
        str += vbCrLf + "    Number of stack frames: " + _
               thread.StackFrames.Count.ToString()
        str += vbCrLf + "    Suspended number of times: " + _
               thread.SuspendCount.ToString()
        str += vbCrLf + "    Flag on the thread: " + _
               thread.Flag.ToString()
    Next
    MessageBox.Show(str, "Thread Test - Properties")
End Sub

Seguridad de .NET Framework

Vea también

Referencia

Thread2 Interfaz

Parent (Sobrecarga)

EnvDTE90 (Espacio de nombres)

Otros recursos

Trabajar con procesos y subprocesos

Gráfico del modelo de objetos de automatización

Cómo: Utilizar la ventana Subprocesos