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

  • hoorahjencar

    hoorahjencar

    6 HAZİRAN 2007
  • Howard Pinsky

    Howard Pinsk

    6 AĞUSTOS 2006
  • Major FX

    Major FX

    6 HAZİRAN 2012