Thread2.Location (Propiedad)
Obtiene la dirección en la que el subproceso estaba ejecutando código en el momento en que se detuvo para la depuración.
Espacio de nombres: EnvDTE90
Ensamblado: EnvDTE90 (en EnvDTE90.dll)
Sintaxis
'Declaración
ReadOnly Property Location As String
Get
string Location { get; }
property String^ Location {
String^ get ();
}
abstract Location : string
function get Location () : String
Valor de propiedad
Tipo: System.String
Valor de cadena que representa la dirección en la que el subproceso estaba ejecutando código en el momento en que se detuvo para la depuración.
Implementaciones
Comentarios
Si el código que se está depurando tiene símbolos asociados, Location devuelve un nombre de función. Si el código que se está depurando no tiene ningún símbolo asociado, Location devuelve una dirección numérica.
Ejemplos
En el siguiente ejemplo se muestra cómo utilizar la propiedad Collection.
Para probar esta propiedad:
Establezca el punto de interrupción dentro del método de devolución de llamada del subproceso de trabajo.
Ejecute la aplicación de destino en el modo de depuración.
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
- Plena confianza para el llamador inmediato. Un código de confianza parcial no puede utilizar este miembro. Para obtener más información, vea Utilizar bibliotecas de código que no es de plena confianza.
Vea también
Referencia
Otros recursos
Trabajar con procesos y subprocesos