У меня есть следующий код, который я пытаюсь использовать для перехвата 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 не попадает в мой обработчик в отладчик, я просто получаю экран «Исходный код недоступен» и возможность продолжить отладку, и все. У кого-нибудь есть идеи, почему я не вхожу в обработчик? Я уверен, что мне просто не хватает чего-то простого.