Compartilhar via


Método Debugger.Stop

Interrompe a depuração, finalizando ou desconectando todos os processos anexados.

Namespace:  EnvDTE
Assembly:  EnvDTE (em EnvDTE.dll)

Sintaxe

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

Parâmetros

  • WaitForDesignMode
    Tipo: Boolean

    Definido como true se a sessão de depuração deve interromper somente quando ele atingir o modo de design. Definido como false se você pretende parar a depuração, mas você precisa executar outras tarefas na macro até mesmo antes do depurador entra no modo de Design.

Comentários

StopInterrompe a depuração e encerra o processo anexado. Consulte <PAVEOVER> Como parar a depuração ou a execução para obter mais informações.

Exemplos

O exemplo a seguir demonstra como usar o Stop método.

Para testar esse método:

  1. Defina um ponto de interrupção no aplicativo de destino.

  2. Execute o aplicativo de destino no modo de depuração.

  3. Quando o aplicativo parar no ponto de interrupção, execute o add-in.

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

Dica

As macros são executadas no thread principal do Visual Studio.O código a seguir não funciona, e a macro repetido indefinidamente, porque o ambiente de desenvolvimento integrado (IDE) nunca tem a chance de entrar no modo de Design.Em vez disso, você deve recorrer a um thread separado ou o mecanismo do pool.

' 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

Segurança do .NET Framework

Consulte também

Referência

Debugger Interface

Namespace EnvDTE