Condividi tramite


Metodo Thread2.Freeze

Interrompe l'esecuzione del thread.

Spazio dei nomi:  EnvDTE90
Assembly:  EnvDTE90 (in EnvDTE90.dll)

Sintassi

'Dichiarazione
Sub Freeze
void Freeze()
void Freeze()
abstract Freeze : unit -> unit 
function Freeze()

Implementa

Thread.Freeze()

Note

Per ulteriori informazioni, vedere How to: Use the Threads Window.

Esempi

Nell'esempio riportato di seguito viene illustrato come utilizzare il metodo Freeze.

Per verificare il metodo:

  1. Impostare il punto di interruzione all'interno del metodo di callback dei thread di lavoro.

  2. Eseguire l'applicazione di destinazione in modalità debug.

  3. Quando l'applicazione si interrompe al punto di interruzione, eseguire il componente aggiuntivo.

public static void FreezeThawTest(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 Freeze Thaw 
      Test");
    owp.Activate();

    EnvDTE.Threads threads = dte.Debugger.CurrentProgram.Threads;
    owp.OutputString("There are " + threads.Count + " threads:\n");
    foreach(EnvDTE90.Thread2 thread in threads)
    {
        owp.OutputString("\nThread: " + thread.ID + "  Name: " + 
          thread.Name);
        owp.OutputString("\n  Is frozen                  : " + 
          thread.IsFrozen);
        owp.OutputString("\n  Freezing . . . ");
        thread.Freeze();
        owp.OutputString("\n  Is frozen                  : " + 
          thread.IsFrozen);
        owp.OutputString("\n  Thawing . . . ");
        thread.Thaw();
        owp.OutputString("\n  Is frozen                  : " + 
          thread.IsFrozen);
    }
}
Shared Sub FreezeThawTest(ByRef dte As EnvDTE80.DTE2)
    Dim str As String
    Dim threads As EnvDTE.Threads = dte.Debugger.CurrentProgram.Threads
    str = "There are " + threads.Count.ToString() + " threads running."
    For Each thread As EnvDTE90.Thread2 In threads
        str += vbCrLf + vbCrLf + "  Thread: " + thread.ID.ToString()
        str += vbCrLf + vbCrLf + "  Is frozen: " + _
          thread.IsFrozen.ToString()
        str += vbCrLf + vbCrLf + "  Freezing ... "
        thread.Freeze()
        str += vbCrLf + vbCrLf + "  Is frozen: " + _ 
          thread.IsFrozen.ToString()
        str += vbCrLf + vbCrLf + "  Thawing ... "
        thread.Thaw()
        str += vbCrLf + vbCrLf + "  Is frozen: " + _
          thread.IsFrozen.ToString()
    Next
    MessageBox.Show(str, "Thread Freeze Thaw Test")
End Sub

Sicurezza di .NET Framework

Vedere anche

Riferimenti

Thread2 Interfaccia

Overload Freeze

Spazio dei nomi EnvDTE90

IsFrozen

Thaw

Altre risorse

Working With Threads and Processes

Grafico del modello a oggetti di automazione

How to: Use the Threads Window