Freigeben über


Debugger3.Stop-Methode (Boolean)

Hält den Debugvorgang an und beendet oder trennt alle angefügten Prozesse.

Namespace:  EnvDTE90
Assembly:  EnvDTE90 (in EnvDTE90.dll)

Syntax

'Declaration
Sub Stop ( _
    WaitForDesignMode As Boolean _
)
void Stop(
    bool WaitForDesignMode
)
void Stop(
    [InAttribute] bool WaitForDesignMode
)
abstract Stop : 
        WaitForDesignMode:bool -> unit 
function Stop(
    WaitForDesignMode : boolean
)

Parameter

  • WaitForDesignMode
    Typ: System.Boolean
    Auf true festlegen, wenn die Debugsitzung nur bei Erreichen des Entwurfsmodus beendet werden soll.Auf false festlegen, wenn das Debuggen beendet werden soll.Sie müssen jedoch andere Aufgaben im Makro ausführen, bevor der Debugger den Entwurfsmodus aufruft.

Implementiert

Debugger2.Stop(Boolean)

Hinweise

Weitere Informationen finden Sie unter Gewusst wie: Beenden des Debuggens bzw. der Ausführung.

Beispiele

Im folgenden Beispiel wird die Verwendung der Stop-Methode gezeigt.

So testen Sie diese Methode

  1. Legen Sie einen Haltepunkt in der Zielanwendung fest.

  2. Führen Sie die Zielanwendung im Debugmodus aus.

  3. Führen Sie das Add-In aus, wenn die Anwendung am Haltepunkt hält.

public static void Stop(EnvDTE80.DTE2 dte)
{
    EnvDTE90.Debugger3 debugger = (EnvDTE90.Debugger3)dte.Debugger;
    debugger.Stop(false);
}
' WaitForDesignMode is true.
Sub StopDebuggingAndNotifySync
    DTE2.Debugger.Stop(True)
    MsgBox("Debugger has been stopped, for sure.")
End Sub

' WaitForDesignMode is false.
Sub StopDebuggingAndNotifyAsync
    DTE2.Debugger.Stop(False)
    ' Depending on how long it takes to stop debugging, 
    ' you may or may not yet be in Design mode.
    If DTE2.Debugger.CurrentMode <> dbgDebugMode.dbgDesignMode
        MsgBox("Debugger still stopping")
    Else
        MsgBox("Debugger has been stopped")
    End If
End Sub

Tipp

Makros werden auf dem Hauptthread von Visual Studio ausgeführt. Der folgende Code kann nicht ordnungsgemäß ausgeführt werden, und das Makro läuft in einer Endlosschleife, da die IDE keine Gelegenheit hat, in den Entwurfsmodus zu wechseln. Verwenden Sie stattdessen einen separaten Thread oder Poolingmechanismus.

' Bad Code Example.
Sub StopDebuggingAndWaitForDesign
    DTE2.Debugger.Stop(False)

    While DTE2.Debugger.CurrentMode <> dbgDebugMode.dbgDesignMode
        System.Threading.Thread.Sleep(50)
    End While

    MsgBox("Debugger has been stopped")
End Sub

.NET Framework-Sicherheit

Siehe auch

Referenz

Debugger3 Schnittstelle

Stop-Überladung

EnvDTE90-Namespace