コンソールアプリでCtrl+Cをトラップするために使用しようとしている次のコードがあります。
/// <summary>
/// A driver program for testing
/// </summary>
/// <param name="args">Arguments to the program</param>
static void Main(string[] args)
{
var program = new Program();
Console.Clear();
Console.TreatControlCAsInput = false;
Console.CancelKeyPress += program.OnCancelKeyPress;
program.Run(args.FirstOrDefault() ?? "3.26.200.125");
Console.WriteLine("Press any key to continue ...");
Console.ReadKey();
}
/// <summary>
/// Called when [cancel key press].
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="e">The <see cref="System.ConsoleCancelEventArgs"/> instance containing the event data.</param>
internal void OnCancelKeyPress(object sender, ConsoleCancelEventArgs e)
{
this.Continue = false;
e.Cancel = true;
}
こことここで質問を確認しましたが、何らかの理由でControl + Cを押すと、Visual Studio 2010がデバッガーのハンドラーに入らず、「ソースコードが利用できません」画面が表示されます。デバッグを継続する機会があり、それだけです。なぜ私がハンドラーに入らないのか誰かが知っていますか?単純なものが欠けていると確信しています。