Anforderungen: Eine NET/C#-Methode muss System.Diagnostics.Process verwenden, um andere Programmoperationen aufzurufen, falls es sich um ein Drittanbieterprogramm handeltStändige Ausbleiben einer Antwort kann zu Methoden führen, die immer wartenDa ein Drittanbieterprogramm möglicherweise von Ihnen verlangen kann, einen Befehl einzugeben, reagiert die Methode nicht, egal wie lange sie wartet, sodass das Programm nicht mehr normal ausgeführt werden kann.
Bezüglich der Festlegung einer Timeout-Zeit für eine Methode sollten Sie einige Dinge bedenken:
- Die Methode ist abgelaufen, kann aber weiterhin durchgesetzt werden
- Wenn die Auszeit anhält, füllt sich dann der Thread? Voller Speicher? Volle CPU?
- Die Methode ist zeitlich abgelaufen, wie man die Ausführung der Methode elegant beendet
Ich habe im Internet etwas Code gesehen, zum Beispiel über Task-Timeout, obwohl der Effekt erreicht wurde, aberDie Aufgabe wird weiterhin ausgeführt, was ständig Ressourcen verbrauchen kann, was zum Absturz des Programms führt.
Der Code lautet wie folgt:
Im Zusammenhang mit dem Thema legt dieser Artikel die Zeitbegrenzung für die Methode festZielgerichtet und nicht für alle Methoden geeignet, um eine Idee zu geben, passen Sie sie bitte an Ihre tatsächliche Situation an.
Unsere Methode ruft System.Diagnostics.Process auf, um ein Drittanbieterprogramm zu starten, und sobald die Methode abläuft, wollen wir den Prozess beenden, der das Drittanbieterprogramm beendet! Der Code lautet wie folgt:
(Ende)
|