Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 9355|Antwort: 5

[Quelle] [Tatsächlicher Kampf]. NET/C# legt eine Timeout-Zeit für eine Methode fest

[Link kopieren]
Veröffentlicht am 04.05.2022 18:59:51 | | | |
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)





Vorhergehend:[Tatsächlicher Kampf]. NET/C# ruft die 7z-Dekompression über die Befehlszeile auf
Nächster:Nginx verwendet HTTPS zur Konfiguration von SSL-Zertifikaten
Veröffentlicht am 04.05.2022 23:10:31 |
Lerne zu lernen...
Veröffentlicht am 10.10.2022 13:12:08 |
Lerne zu lernen...
Veröffentlicht am 10.10.2022 13:12:50 |
Lerne es
Veröffentlicht am 10.10.2022 13:13:27 |
Schauen wir uns mal die Lösung des großen Kerls an. Hee hee
 Vermieter| Veröffentlicht am 10.10.2022 17:22:12 |
Task.WaitAsync() API in .NET 6

In .NET 6 wurde eine neue WaitAsync-Methode hinzugefügt, die verwendet wird, um asynchron auf den Abschluss einer Aufgabe zu warten, und beim asynchronen Warten kann man eine Timeout-Zeit oder ein CancellationToken CancellationToken angeben; in der vorherigen Version gab es nur ein synchrones Wait, das auf die Fertigstellung der Aufgabe wartete und keine besseren Task-Timeouts oder -absagen unterstützte Erweiterungen wie TimeoutAfter können diese durch WaitAsync ersetzen

https://andrewlock.net/a-deep-di ... nc-api-in-dotnet-6/
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com