Debugger.Stop 方法

停止调试、终止或与所有附加进程分离。

命名空间:  EnvDTE
程序集:  EnvDTE(在 EnvDTE.dll 中)

语法

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

参数

  • WaitForDesignMode
    类型:System.Boolean
    如果仅当调试会话进入设计模式时才应该停止该会话,则设置为 true。如果希望在调试器进入设计模式之前便停止调试,但又需要在宏中执行其他任务,请设置为 false。

备注

Stop 停止调试并终止附加进程。 有关更多信息,请参见 如何:停止调试或停止执行

示例

下面的示例演示如何使用 Stop 方法。

若要测试此方法,请执行下列操作:

  1. 在目标应用程序中设置一个断点。

  2. 以调试模式运行目标应用程序。

  3. 当此应用程序停在该断点处时,运行外接程序。

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

提示

宏在 Visual Studio 的主线程上运行。 下面的代码不起作用并且宏无限循环,原因是集成开发环境 (IDE) 从没有机会进入设计模式。 您应改用单独的线程或池机制。

' 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 安全性

请参见

参考

Debugger 接口

EnvDTE 命名空间