Timeout in C#-Programm einbauen
-
Hallo !
Ich habe ein C#-Programm das eine Kommandozeilenanwendung in einem eigenen Process startet
Muster:
while (true) { Process myProcess = new Process(); ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("Process_StandardOutput_Sample.exe" ); myProcessStartInfo.UseShellExecute = false; myProcessStartInfo.RedirectStandardOutput = true; myProcess.StartInfo = myProcessStartInfo; myProcess.Start(); }
Ich würde jetzt gerne erreichen dass diese Kommandozeilensoftware mit z.B. eine Timeout von 30 sekunden aufgerufen wird, d.h. wenn die Anwendung 30 Sekunden lang nicht reagiert soll der Code "weiterlaufen" und es im Schleifendurchlauf nochmal versuchen.
Dazu würde ich dann einen Counter einbaut der z.B. nach 10 Timeouts irgendwas macht - mir gehts aber grad nur drum einen "einfachen" timeout zu realisieren.Danke
Daria
-
Suchst Du vlt. Thread.Sleep(...)?
-
Naja, Thread.Sleep lässt ja das Programm in jedem Fall schlafen.
Ich würde aber eine Timeout-Funktion benötigen die nur dann greift wenn das von mir aufgerufenen Programm nicht in einer definierten Zeit reagiert.d.h.
Aufruf --> Programm reagiert innerhalb von 30 Sekunden --> alles gut
aber
Aufruf --> Programm reagiert nicht innerhalb von 30 Sekunden --> Abbruch und Neustart