Поделиться через


Debugger2.Stop - метод (Boolean)

Прекращает отладку и завершает или отсоединяет все вложенные процессы.

Пространство имен:  EnvDTE80
Сборка:  EnvDTE80 (в EnvDTE80.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, если планируется остановить отладку, но необходимо выполнить другие задачи в макросе, прежде чем отладчик перейдет в режим конструктора.

Реализации

Debugger.Stop(Boolean)

Заметки

Дополнительные сведения см. в разделе Практическое руководство. Остановка отладки или выполнения.

Примеры

В следующем примере показано, как использовать метод Stop.

Тестирование данного метода:

  1. Задайте в целевом приложении точку останова.

  2. Запустите приложение в режиме отладки.

  3. Когда выполнение приложения остановится в точке останова, запустите надстройку.

public static void Stop(EnvDTE80.DTE2 dte)
{
    EnvDTE80.Debugger2 debugger = (EnvDTE80.Debugger2)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

Примечание

Макросы выполняются в основном потоке Visual Studio.Следующий код не работает, а макрос выполняется в бесконечном цикле, потому что интегрированная среда разработки не может войти в режим разработки.Используйте отдельный поток или механизм объединения.

' 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

См. также

Ссылки

Debugger2 Интерфейс

Stop - перегрузка

EnvDTE80 - пространство имен