SORU
7 EKİM 2008, Salı


Nasıl tuzak ctrl-c bir C# konsol uygulaması

Tuzak ctrl-c C olmak istiyorum# çıkmadan önce bazı temizlemeler yürütmek böylece bir konsol uygulaması. Bunu yapmanın en iyi yolu nedir?

CEVAP
30 Mayıs 2009, CUMARTESİ


Console.CancelKeyPress bu olay için kullanılır. Bu nasıl kullanılacağı

public static void Main(string[] args)
{
	Console.CancelKeyPress  = delegate {
		// call methods to clean up
	};

	while (true) {}
}

Kullanıcı Ctrl C tuşuna bastığında temsilci kodu çalıştırılır ve program çıkar. Bu necessairy yöntemlerini çağırarak temizleme gerçekleştirmek için izin verir. Temsilci sonra kod çalıştırılır unutmayın.

Bu yetmez, diğer durumlar vardır. Eğer program şu anda önemli hesaplamalar yapmak, örneğin, hemen durdurulamaz. Bu durumda, doğru strateji programı hesaplama tamamlandıktan sonra çıkmak için söylemek olabilir. Aşağıdaki kod, bu uygulanabilir bir örnek verir:

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) {}
		Console.WriteLine("exited gracefully");
	}
}

Bu kodu ve ilk örnek arasındaki fark e.Cancel yürütme temsilci sonra devam ediyor demek ki doğru olarak ayarlanmış olmasıdır. Çalıştırırsanız, program kullanıcı while döngüsünden çıkılmasına neden keepRunning varible değişiklikleri değeri Olduğunda Ctrl C tuşuna basın bekler. Bu programı incelikle çıkış yapmak için bir yoldur.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Abe Olandres

    Abe Olandres

    16 EYLÜL 2006
  • Chuck Testa

    Chuck Testa

    14 AĞUSTOS 2011
  • MW Technology

    MW Technolog

    28 EKİM 2009