Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 9355|Antwoord: 5

[Bron] [Echte gevechten]. NET/C# stelt een time-out tijd in voor een methode

[Link kopiëren]
Geplaatst op 04-05-2022 18:59:51 | | | |
Vereisten: Een NET/C#-methode moet System.Diagnostics.Process gebruiken om andere programmabewerkingen aan te roepen, als het een programma van derden is.Een constant gebrek aan respons kan leiden tot methoden die altijd wachtenOmdat een programma van derden mogelijk vereist dat je een commando invoert, reageert de methode niet, ongeacht hoe lang het wacht, waardoor het programma niet normaal verder kan uitvoeren.

Wat betreft het instellen van een time-out tijd voor een methode, moet je een paar dingen overwegen:

  • De methode is verlopen, maar kan nog steeds worden gehandhaafd
  • Als de time-out doorgaat, vult het dan de thread? Volledig geheugen? Volledige CPU?
  • De methode werd getimed om de uitvoering van de methode op een elegante manier te beëindigen


Ik zag wat code op internet, bijvoorbeeld over Task timeout, hoewel het effect wel werd bereikt, maarDe taak zal worden uitgevoerd, wat voortdurend resources kan verbruiken, waardoor het programma crasht.

De code is als volgt:



Met het onderwerp bespreekt dit artikel de time-out tijd voor de methodeGericht en niet geschikt voor alle methoden, om een idee te geven, pas het alsjeblieft aan volgens je werkelijke situatie.

Onze methode roept System.Diagnostics.Process aan om een programma van derden te starten, en zodra de methode uitvalt, willen we het proces dat het programma beëindigt stoppen! De code is als volgt:


(Einde)





Vorig:[Echte gevechten]. NET/C# roept 7z-decompressie aan via de commandoregel
Volgend:Nginx gebruikt HTTPS om SSL-certificaten te configureren
Geplaatst op 04-05-2022 23:10:31 |
Leer leren...
Geplaatst op 10-10-2022 13:12:08 |
Leer leren...
Geplaatst op 10-10-2022 13:12:50 |
Leer het
Geplaatst op 10-10-2022 13:13:27 |
Laten we eens kijken naar de oplossing van de grote kerel, hee hee hee
 Huisbaas| Geplaatst op 10-10-2022 17:22:12 |
Task.WaitAsync() API in .NET 6

In .NET 6 is een nieuwe WaitAsync-methode toegevoegd, die wordt gebruikt om asynchroon te wachten tot een taak voltooid is, en bij asynchrone wacht kun je een Timeout-tijd of een annuleringstoken CancellationToken specificeren; in de vorige versie was er alleen een synchrone Wait die wachtte tot de taak voltooid was, en werd geen betere taak-timeouts of annuleringen ondersteund Extensies zoals TimeoutAfter kunnen deze extensies vervangen door WaitAsync

https://andrewlock.net/a-deep-di ... nc-api-in-dotnet-6/
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com