次の方法で共有


Debugger3.Stop メソッド (Boolean)

デバッグを中断し、アタッチされたすべてのプロセスを終了またはデタッチします。

名前空間:  EnvDTE90
アセンブリ:  EnvDTE90 (EnvDTE90.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 メソッドを使用する方法の例を次に示します。

このメソッドをテストするには

  1. ターゲット アプリケーションにブレークポイントを設定します。

  2. ターゲット アプリケーションをデバッグ モードで実行します。

  3. ブレークポイントでアプリケーションが停止したら、アドインを実行します。

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

[!メモ]

マクロは Visual Studio のメイン スレッドで実行されます。次に示すコードは正しく動作せず、マクロが無限にループします。これは、IDE をデザイン モードにできないためです。代わりに、個別のスレッドまたはプール機構を使用してください。

' 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 セキュリティ

  • 直前の呼び出し元に対する完全な信頼。このメンバーは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

関連項目

Debugger3 インターフェイス

Stop オーバーロード

EnvDTE90 名前空間