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)
|