Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengendalikan Gangguan Ctrl C dalam Aplikasi Konsol C# dengan Anggun?

Bagaimanakah Saya Boleh Mengendalikan Gangguan Ctrl C dalam Aplikasi Konsol C# dengan Anggun?

Susan Sarandon
Lepaskan: 2024-12-30 20:52:14
asal
442 orang telah melayarinya

How Can I Gracefully Handle Ctrl C Interrupts in C# Console Applications?

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) {}
}
Salin selepas log masuk

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");
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan