Konsolenanwendungen sind nicht unbedingt für eine lange Laufzeit vorgesehen. Davon abgesehen, können Sie es tun. Um sicherzustellen, dass die Konsole nicht einfach beendet wird, muss die Konsolenschleife in Console.ReadLine auf eine Beendigungszeichenfolge wie "quit" warten.
Um Ihren Code alle 10 Minuten auszuführen, rufen Sie System.Threading.Timer auf und zeigen Sie ihn in einem 10-Minuten-Intervall auf Ihre Ausführungsmethode.
public static void Main(string[] args)
{
using (new Timer(methodThatExecutesEveryTenMinutes, null, TimeSpan.FromMinutes(10), TimeSpan.FromMinutes(10)))
{
while (true)
{
if (Console.ReadLine() == "quit")
{
break;
}
}
}
}
private static void methodThatExecutesEveryTenMinutes(object state)
{
// some code that runs every ten minutes
}
EDIT
Ich mag Boj Kommentar zu Ihrer Frage, though. Wenn Sie eine lange laufende Anwendung benötigen, sollten Sie den Aufwand für einen Windows-Dienst beachten. Es gibt einen gewissen Entwicklungsaufwand, aber Sie erhalten eine viel stabilere Plattform, auf der Sie Ihren Code ausführen können.
Nur zu beachten: Es ist sehr einfach, eine Konsolenanwendung zu töten. Wenn dieser Hintergrundjob wichtig ist, wählen Sie die Windows-Service-Implementierung. Oder betrachten Sie Nandos Post über WTS. – boj