Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 9355|Απάντηση: 5

[Πηγή] [Πραγματική μάχη]. Το NET/C# ορίζει ένα χρονικό όριο για μια μέθοδο

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 4/5/2022 6:59:51 μ.μ. | | | |
Απαιτήσεις: Μια μέθοδος NET/C# πρέπει να χρησιμοποιεί το System.Diagnostics.Process για να καλέσει άλλες λειτουργίες προγράμματος, εάν πρόκειται για πρόγραμμα άλλου κατασκευαστήΗ συνεχής έλλειψη ανταπόκρισης μπορεί να οδηγήσει σε μεθόδους που πάντα περιμένουνΕπειδή ένα πρόγραμμα τρίτου κατασκευαστή μπορεί να απαιτεί την εισαγωγή μιας εντολής, η μέθοδος δεν θα ανταποκριθεί όσο καιρό κι αν περιμένει, με αποτέλεσμα το πρόγραμμα να μην μπορεί να συνεχίσει να εκτελείται κανονικά.

Όσον αφορά τον ορισμό ενός χρονικού ορίου για μια μέθοδο, θα πρέπει να λάβετε υπόψη μερικά πράγματα:

  • Η μέθοδος έχει λήξει, αλλά μπορεί ακόμα να επιβληθεί
  • Εάν το χρονικό όριο συνεχιστεί, θα γεμίσει το νήμα; Πλήρης μνήμη; Πλήρης CPU;
  • Η μέθοδος έληξε, πώς να τερματίσετε με χάρη την εκτέλεση της μεθόδου


Είδα κάποιο κώδικα στο Διαδίκτυο, όπως για το χρονικό όριο εργασίας, αν και το αποτέλεσμα επιτεύχθηκε, αλλάΗ εργασία θα συνεχίσει να εκτελείται, το οποίο μπορεί να καταναλώνει συνεχώς πόρους, προκαλώντας τη διακοπή λειτουργίας του προγράμματος.

Ο κωδικός έχει ως εξής:



Εξετάζοντας το θέμα, αυτό το άρθρο ορίζει το χρονικό όριο για τη μέθοδοΣτοχευμένο και ακατάλληλο για όλες τις μεθόδους, απλώς για να δώσετε μια ιδέα, τροποποιήστε την σύμφωνα με την πραγματική σας κατάσταση.

Η μέθοδός μας καλεί το System.Diagnostics.Process να ξεκινήσει ένα πρόγραμμα τρίτου κατασκευαστή και μόλις λήξει το χρονικό όριο της μεθόδου, θέλουμε να σκοτώσουμε τη διαδικασία που τερματίζει το πρόγραμμα τρίτου μέρους! Ο κωδικός έχει ως εξής:


(Τέλος)





Προηγούμενος:[Πραγματική μάχη]. Το NET/C# καλεί αποσυμπίεση 7z μέσω της γραμμής εντολών
Επόμενος:Το Nginx χρησιμοποιεί HTTPS για τη διαμόρφωση πιστοποιητικών SSL
Δημοσιεύτηκε στις 4/5/2022 11:10:31 μ.μ. |
Μάθε να μαθαίνεις...
Δημοσιεύτηκε στις 10/10/2022 1:12:08 μ.μ. |
Μάθε να μαθαίνεις...
Δημοσιεύτηκε στις 10/10/2022 1:12:50 μ.μ. |
Μάθε το
Δημοσιεύτηκε στις 10/10/2022 1:13:27 μ.μ. |
Ας ρίξουμε μια ματιά στη λύση του μεγάλου τύπου χι χι
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 10/10/2022 5:22:12 μ.μ. |
API Task.WaitAsync() στο .NET 6

Στο .NET 6, έχει προστεθεί μια νέα μέθοδος WaitAsync, η οποία χρησιμοποιείται για την ασύγχρονη αναμονή για την ολοκλήρωση μιας εργασίας και όταν περιμένετε ασύγχρονα, μπορείτε να καθορίσετε ένα χρονικό όριο ή ένα διακριτικό ακύρωσης CancellationToken, στην προηγούμενη έκδοση υπήρχε μόνο μια σύγχρονη αναμονή που θα περίμενε να ολοκληρωθεί η εργασία και δεν υποστήριζε καλύτερα χρονικά όρια ή ακυρώσεις εργασιών Επεκτάσεις όπως το TimeoutAfter μπορούν να αντικαταστήσουν αυτές τις επεκτάσεις με το WaitAsync

https://andrewlock.net/a-deep-di ... nc-api-in-dotnet-6/
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com