Ich habe eine Konsolenanwendung in Visual Studio 2008, C# und .NET Framework 3.5.Schließen Sie das Konsolenanwendungsfenster nach dem Drücken der Taste oder automatisch nach x Minuten
Wenn die Anwendung beendet, um alle Sachen zu tun, die ich Fenster schließen möchte, wenn Benutzer eine Taste drücken oder automatisch nach ein paar Minuten abgelaufen sind.
So am Ende meiner Anwendung, die ich tue:
static System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
public static int Main(string[] args)
{
// Do some stuff
Console.WriteLine("Press any key to close this window.");
myTimer.Tick += new EventHandler(TimerEventProcessor);
myTimer.Interval = 5000;
myTimer.Start();
Console.ReadKey();
return 0;
}
private static void TimerEventProcessor(Object myObject, EventArgs myEventArgs)
{
myTimer.Stop();
Environment.Exit(0);
}
Das Problem hierbei ist, dass Fenster nach x Minuten nicht in der Nähe ist abgelaufen und auch Timer-Ereignis wird ausgelöst, nie da Programm für ein blockiertes wartet Schlüssel (Lesekey).
So wie es geht?
Sie die falsche Art von Timer verwenden, können Sie nicht ein 'System.Windows.Forms.Timer' in einer Konsole App wie diese verwenden, benötigen Sie einen Timer, der nicht auf einem„UI-Thread angewiesen "Wie ein' System.Timers.Timer' –