我有下面的代碼,我試圖在一個控制檯應用程序使用捕獲按Ctrl + C:無法捕獲按Ctrl + C在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;
}
我已經檢查問題here和here,但由於某些原因,當我按下Control + C時,Visual Studio 2010將無法進入調試器中的處理程序,我只是得到一個「源代碼不可用」屏幕,並有機會繼續調試,就是這樣。有沒有人知道我爲什麼不進入處理程序?我相信我只是想念一些簡單的東西。
這也是當我在調試時,當我在發佈中運行該程序時,它工作正常。這只是我遇到的一個視覺工作室問題? – 2012-02-27 23:23:51
您是否嘗試過在控制處理程序中設置斷點?可能會導致Visual Studio在處理程序運行之前中斷執行。之後你可以看到是否繼續進入控制處理程序。 – Guvante 2012-02-27 23:24:04
是的,我已經在處理程序中放置了一個斷點,它永遠不會被擊中。只要我在上述點擊F5繼續(希望進入我的處理程序),程序就會恢復運行,就像沒有發生任何事情,並且沒有中斷鍵被擊中。 – 2012-02-27 23:28:52