Debugger.Stop-Methode
Beendet das Debuggen und bricht alle angefügten Prozesse ab.
Namespace: EnvDTE
Assembly: EnvDTE (in EnvDTE.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
Wird auf true festgelegt, wenn die Debugsitzung nur bei Erreichen des Entwurfsmodus angehalten werden soll.Wird auf false festgelegt, wenn Sie den Debugvorgang beenden möchten, aber andere Aufgaben im Makro ausführen müssen, bevor der Debugger den Entwurfsmodus erreicht hat.
Hinweise
Stop beendet das Debuggen und bricht den angefügten Prozess ab. Weitere Informationen finden Sie unter Gewusst wie: Beenden des Debuggens bzw. der Ausführung.
Beispiele
Das folgende Beispiel veranschaulicht, wie die Stop-Methode verwendet wird.
So testen Sie diese Methode
Legen Sie einen Haltepunkt in der Zielanwendung fest.
Führen Sie die Zielanwendung im Debugmodus aus.
Führen Sie das Add-In aus, wenn die Anwendung am Haltepunkt hält.
public static void Stop(DTE dte)
{
EnvDTE.Debugger debugger = (EnvDTE.Debugger)dte.Debugger;
debugger.Stop(true);
}
Shared Sub Stop(ByRef dte As EnvDTE.DTE)
dte.Debugger. Stop(True)
End Sub
' WaitForDesignMode is true
Sub StopDebuggingAndNotifySync
DTE.Debugger.Stop(True)
MsgBox("Debugger has been stopped, for sure.")
End Sub
' WaitForDesignMode is false
Sub StopDebuggingAndNotifyAsync
DTE.Debugger.Stop(False)
' Depending on how long it takes to stop debugging,
' the environment may or may not yet be in Design mode.
If DTE.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 funktioniert nicht, und das Makro wird in einer Endlosschleife ausgeführt, da die integrierte Entwicklungsumgebung (IDE) den Entwurfsmodus auf diese Weise nie erreichen wird. Stattdessen sollten Sie einen separaten Thread oder Poolingmechanismus verwenden.
' Bad Code Example.
Sub StopDebuggingAndWaitForDesign
DTE.Debugger.Stop(False)
While DTE.Debugger.CurrentMode <> dbgDebugMode.dbgDesignMode
System.Threading.Thread.Sleep(50)
End While
MsgBox("Debugger has been stopped")
End Sub
.NET Framework-Sicherheit
- Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter Verwenden von Bibliotheken aus teilweise vertrauenswürdigem Code.