根據黑大(黑暗執行緒) 的 FB 貼文,有了以下的測試心得
見圖一
第一次的 Enter something:直接按Ctrl + C 程式碼繼續跑完
第二次的 Enter something: 按幾個 C 之後,再按Ctrl + C 程式碼繼續跑完(結果跟第一次一樣)
見圖二
基本上結果一樣,只是記錄一下,程式碼改成主動離開。
題外話,ConsoleCancelEventArgs.Cancel 屬性 可以設定 CTRL+C 之後,要不要停止程式。
Console.CancelKeyPress += new ConsoleCancelEventHandler(myHandler);
Console.WriteLine("Before ReadLine()");
while(true)
{
Console.Write("Enter something, or press CTRL+C to quit: ");
string line = Console.ReadLine();
if (line == null)
{
Console.WriteLine("You entered nothing.");
}
else
{
Console.WriteLine("You entered: " + line);
}
Console.WriteLine("After ReadLine(0):" + line);
Console.WriteLine("After ReadLine(1):" + line);
Console.WriteLine("After ReadLine(2):" + line);
}
static void myHandler(object sender, ConsoleCancelEventArgs args)
{
Console.WriteLine("CTRL+C");
args.Cancel = false; // 預設是 false,該值是 true 的時候 Ctrl + C 該程式不會結束
}
PS 環境 net8.0