Mengendalikan Ctrl C (SIGINT) dalam Aplikasi Konsol C#
Dalam C#, memerangkap Ctrl C (SIGINT) membolehkan pembersihan yang diperlukan sebelum keluar dengan anggun aplikasi konsol. Acara Console.CancelKeyPress menyediakan cara untuk mengendalikan gangguan ini.
Menggunakan Console.CancelKeyPress
Kod berikut menunjukkan cara menggunakan acara CancelKeyPress:
public static void Main(string[] args) { Console.CancelKeyPress += delegate { // Perform clean-up actions }; while (true) {} }
Apabila pengguna menekan Ctrl C, kod perwakilan dilaksanakan, memulakan proses pembersihan dan program keluar serta-merta.
Kes Penggunaan Khusus
Dalam senario di mana pemberhentian pengiraan serta-merta adalah tidak diingini, alternatif pendekatan disyorkan:
class MainClass { private static bool keepRunning = true; public static void Main(string[] args) { Console.CancelKeyPress += delegate(object? sender, ConsoleCancelEventArgs e) { e.Cancel = true; MainClass.keepRunning = false; }; while (MainClass.keepRunning) { // Perform small chunks of work } Console.WriteLine("exited gracefully"); } }
Pelaksanaan ini menetapkan e.Batalkan bendera kepada benar, menghalang penamatan program serta-merta. Sebaliknya, pembolehubah keepRunning ditetapkan kepada palsu, membenarkan gelung while keluar selepas sebarang pengiraan berterusan selesai. Pendekatan ini memudahkan penamatan program yang anggun.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Gangguan Ctrl C dalam Aplikasi Konsol C# dengan Anggun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!