Krav: En NET/C#-metod måste använda System.Diagnostics.Process för att anropa andra programoperationer, om det är ett tredjepartsprogramStändig brist på svar kan leda till metoder som alltid väntarEftersom ett tredjepartsprogram kan kräva att du anger ett kommando, svarar metoden inte oavsett hur länge den väntar, vilket gör att programmet inte kan fortsätta köra normalt.
När det gäller att sätta en timeout-tid för en metod bör du tänka på några saker:
- Metoden har gått ut på tiden, men den kan fortfarande tillämpas
- Om timeouten fortsätter, fylls tråden upp? Fullt minne? Full CPU?
- Metoden gick i tidsgräns, hur man elegant avslutar utförandet av metoden
Jag såg lite kod på internet, till exempel om Task timeout, även om effekten uppnåddes, menUppgiften kommer att fortsätta att utföras, vilket kan förbruka resurser hela tiden och orsaka att programmet kraschar.
Koden är följande:
Genom att granska ämnet anger denna artikel tidsgränsen för metodenRiktat och inte lämpligt för alla metoder, bara för att ge en idé, vänligen anpassa den efter din faktiska situation.
Vår metod anropar System.Diagnostics.Process för att starta ett tredjepartsprogram, och när metoden går ut vill vi avsluta processen som avslutar tredjepartsprogrammet! Koden är följande:
(Slut)
|