Thread.IsAlive Property
Gets whether the referenced thread is still alive.
Namespace: EnvDTE
Assembly: EnvDTE (in EnvDTE.dll)
Syntax
'Declaration
ReadOnly Property IsAlive As Boolean
bool IsAlive { get; }
property bool IsAlive {
bool get ();
}
abstract IsAlive : bool
function get IsAlive () : boolean
Property Value
Type: System.Boolean
A Boolean value.
Remarks
Returns true if the referenced thread is still alive; otherwise, false.
Note
The thread state may change before this function returns.
Examples
The following example demonstrates how to use the IsAlive property.
To test this property
Set the breakpoint inside the worker thread callback method.
Run the target application in the debug mode.
When the application stops on the breakpoint, run the add-in.
public static void TestThreadProperties(DTE 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(EnvDTE.Thread 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);
}
}
Shared Sub ThreadProperties(ByRef dte As EnvDTE.DTE)
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 EnvDTE.Thread 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()
Next
MessageBox.Show(str, "Thread Test - Properties")
End Sub
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.