Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 9355|Răspunde: 5

[Sursă] [Luptă propriu-zisă]. NET/C# stabilește un timp de timeout pentru o metodă

[Copiază linkul]
Postat pe 04.05.2022 18:59:51 | | | |
Cerințe: O metodă NET/C# trebuie să folosească System.Diagnostics.Process pentru a apela alte operațiuni de program, dacă este un program terțLipsa constantă de răspuns poate duce la metode care sunt mereu așteptatePentru că un program terț poate cere introducerea unei comenzi, metoda nu va răspunde indiferent cât timp așteaptă, ceea ce face ca programul să nu poată continua să funcționeze normal.

În ceea ce privește stabilirea unui timp de timeout pentru o metodă, ar trebui să iei în considerare câteva aspecte:

  • Metoda a expirat, dar este posibil să fie aplicată în continuare
  • Dacă timeout-ul continuă, va umple firul de discuție? Memorie completă? CPU complet?
  • Metoda a expirat, cum să închei elegant execuția metodei


Am văzut ceva cod pe Internet, cum ar fi despre timeout-ul sarcinii, deși efectul a fost atins, darSarcina va continua să fie executată, care poate consuma resurse tot timpul, cauzând blocarea programului.

Codul este următorul:



Revizuind subiectul, acest articol stabilește timpul de pauză pentru metodăȚintită și nu potrivită pentru toate metodele, doar pentru a-ți oferi o idee, te rog să o modifici în funcție de situația ta reală.

Metoda noastră apelează System.Diagnostics.Process pentru a începe un program terț, iar odată ce metoda expiră, vrem să oprim procesul care termină programul terț! Codul este următorul:


(Sfârșit)





Precedent:[Luptă propriu-zisă]. NET/C# apelează la decompresie 7z prin linia de comandă
Următor:Nginx folosește HTTPS pentru a configura certificate SSL
Postat pe 04.05.2022 23:10:31 |
Învață să înveți...
Postat pe 10.10.2022 13:12:08 |
Învață să înveți...
Postat pe 10.10.2022 13:12:50 |
Învață-l
Postat pe 10.10.2022 13:13:27 |
Hai să aruncăm o privire asupra soluției băiatului mare hee hee
 Proprietarul| Postat pe 10.10.2022 17:22:12 |
API-ul Task.WaitAsync() în .NET 6

În .NET 6, a fost adăugată o nouă metodă WaitAsync, care este folosită pentru a aștepta asincron finalizarea unei sarcini, iar când aștepți asincron, poți specifica un timp de timeout sau un token de anulare CancellationToken; în versiunea anterioară exista doar un Wait sincron care aștepta finalizarea sarcinii și nu suporta timeout-uri sau anulări mai bune ale sarcinilor Extensii precum TimeoutAfter pot înlocui aceste extensii cu WaitAsync

https://andrewlock.net/a-deep-di ... nc-api-in-dotnet-6/
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com