回答のまとめ
デバッガーが Ctrl+C をトラップしないようにするには、最初に Visual Studio ホスティング プロセスをオフにします (プロジェクト プロパティの [デバッグ] タブにあります)。
Express バージョンの Visual Studio を使用している場合は、これですべてです。
Visual Studio の Pro またはそれ以上のバージョンを使用している場合は、さらに [デバッグ] > [例外...]、[Win32 例外] を開き、Ctrl+C のチェックを外すことができます。
別の方法として、デバッグ時に Ctrl+Break を使用できます。ただし、私のように Ctrl+C が脳に組み込まれている場合を除きます。
オリジナル
以下編集済みです。ハンスは彼の答えを撤回したようですが、彼の質問は私が問題のステートメントを絞り込むのに役立ちました:
余分な明瞭さ
- Ctrl+C の動作を変更したくありません。
- 私は回避策を探していません。
- デバッグセッション中に Ctrl+C が押されたときにデバッガーが壊れないようにしたいだけです。
次の例は不自然であることに注意してください。行動を示すだけです。人々の気を散らしていたので、ReadKey 行を変更しました。
次のプログラムをデバッグ (実行) します。
class Program
{
static void Main()
{
System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
}
}
Ctrl+C を押します。デバッガーは、スリープ行にブレークポイントを設定した場合と同様にブレークします。
これをオフにするにはどうすればよいですか?デバッガーが Ctrl+C でまったく中断したくありません。
これは、VS2008 Pro を使用している自宅では発生しません。
私は今、VS2008 Express と VS2010 Express (簡単にテストできる唯一のエディション) の両方で試しましたが、すべて実行されています。これは、それがエクスプレスの動作であるか、オン/オフを切り替える設定がどこかにあると私に信じさせました。
- バージョン/エディションでこれをオン/オフする設定はありますか?
- この設定は VS2008、VS2010、またはその両方に存在しますか?
- 設定は Express エディションで公開されていますか?
- VS2008 Pro のインスタンスは一意ですか? 引き継がれた古いバージョンの Visual Studio で公開された設定です (私は多くの新しいバージョンで VS の設定を引き継いでいます)。