Sonsuz bir işlem gerçekleştirecek bir C# konsol uygulaması oluşturuyorum. Kullanıcı çıkış tuşunu bastığında uygulamayı "duraklat" durumuna nasıl getirebilirim?Kullanıcı, bir komut uygulamasının kaçışına basıldığında nasıl "Duraklatır"?
Kullanıcı çıkış tuşuna bastığında, uygulamadan çıkma ya da döngüyü kaldığı yerden devam etme seçeneğine sahip olmak istiyorum. Süreçte süreksizlik istemiyorum. kullanıcı girişi anahtarında denetlemek için herhangi bir yolu var mı
// Runs the infinite loop application
public static void runLoop()
{
int count = 0;
while (Console.ReadKey().Key!= ConsoleKey.Escape)
{
WriteToConsole("Doing stuff.... Loop#" + count.ToString());
for (int step = 0; step <= int.MaxValue; step++) {
WriteToConsole("Performing step #" + step.ToString());
if (step == int.MaxValue)
{
step = 0; // Re-set the loop counter
}
}
count++;
}
WriteToConsole("Do you want to exit? y/n");
exitApplication(ReadFromConsole());
}
: Ben adımda 100 Esc
basarsanız ben burada
101. şimdiye kadar benim yöntemdir aşamada doğru geri almak gerekir Diğer iş parçacığı, bir Esc
tuşa basıldığında, sonsuz bir döngüyü durdurun. okumaya hazır giriş akışında bir anahtar varsa gerçek
while (someLoopCondition)
{
//Do lots of work here
if (Console.KeyAvailable)
{
var consoleKey = Console.ReadKey(true); //true keeps the key from
//being displayed in the console
if (consoleKey.Key == ConsoleKey.Escape)
{
//Pause here, ask a question, whatever.
}
}
}
Console.KeyAvailable
döner ve bir sivil geçerli: döngüsünde kilit mevcut olup olmadığını
Elbette, ama parçacığı içine almak zorunda olacak. – BradleyDotNET
Yani aradığınız şey kaçış anahtarının basıldığını kontrol etmenin bir yolu, ancak döngü kullanıcının kullanıcısı için beklemeden, değil mi? –
Hmm, kullanıcının manuel olarak bu tuşa basmaya karar vermesi pek olası değildir. Sadece Ctrl + S yerine basmaya gerek yok. –