Σπίτι Ανάπτυξη Τι είναι η κλήση ασύγχρονης μεθόδου; - ορισμός από την τεχνολογία

Τι είναι η κλήση ασύγχρονης μεθόδου; - ορισμός από την τεχνολογία

Πίνακας περιεχομένων:

Anonim

Ορισμός - Τι σημαίνει η ασύγχρονη μέθοδος κλήσης;

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


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


Οι ασύγχρονες μέθοδοι συμβάλλουν στη βελτιστοποίηση της εκτέλεσης των πόρων με αποτέλεσμα την επεκτάσιμη εφαρμογή. Αυτά χρησιμοποιούνται για την εκτέλεση χρονοβόρων εργασιών όπως το άνοιγμα μεγάλων αρχείων, η σύνδεση σε απομακρυσμένους υπολογιστές, η αναζήτηση σε μια βάση δεδομένων, η κλήση υπηρεσιών Web και οι φόρμες ιστού ASP.NET.


Η κλήση ασύγχρονης μεθόδου μπορεί επίσης να αναφέρεται ως ασύγχρονη επίκληση μεθόδων (AMI).

Η Techopedia εξηγεί την κλήση ασύγχρονης μεθόδου

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


Το .NET Framework διαθέτει ενσωματωμένη ασύγχρονη υποδομή έτσι ώστε οποιαδήποτε μέθοδος να μπορεί να χρησιμοποιηθεί ασύγχρονα χωρίς να αλλοιωθεί ο κωδικός της.


Το .NET Framework παρέχει δύο μοτίβα σχεδίασης για την εφαρμογή της ασύγχρονης μεθόδου, τα οποία είναι εκείνα που χρησιμοποιούν ασύγχρονα πληρεξούσια (αντικείμενα IASyncResult) και συμβάντα. Το πρότυπο των ασύγχρονων αντιπροσώπων είναι πιο περίπλοκο και παρέχει ευελιξία, γεγονός που το καθιστά κατάλληλο για διάφορα πολύπλοκα μοντέλα προγραμματισμού. Το μοντέλο βασισμένο σε συμβάντα είναι απλό και θα πρέπει να χρησιμοποιείται στις περισσότερες περιπτώσεις.


Στο μοτίβο ασύγχρονων αντιπροσώπων, ένα αντικείμενο αντιπροσώπου χρησιμοποιεί δύο μεθόδους: BeginInvoke και EndInvoke. Το BeginInvoke έχει μια λίστα παραμέτρων, οι οποίες είναι παρόμοιες με την τυλιγμένη λειτουργία του, μαζί με δύο πρόσθετες προαιρετικές παραμέτρους. επιστρέφει το αντικείμενο IAsyncResult. Το EndInvoke επιστρέφει δύο παραμέτρους (εκτός και τύπου ref) μαζί με το αντικείμενο IAsyncResult. Το BeginInvoke χρησιμοποιείται για την εκκίνηση της ασύγχρονης κλήσης, ενώ το EndInvoke χρησιμοποιείται για την ανάκτηση των αποτελεσμάτων της ασύγχρονης κλήσης.


Τα ασύγχρονα μοτίβα βασισμένα σε συμβάντα χρησιμοποιούν μια κλάση που έχει μία ή περισσότερες μεθόδους, που ονομάζονται MethodNameAsync, οι οποίες έχουν αντίστοιχες συγχρονικές εκδόσεις που εκτελούνται στο τρέχον νήμα. Τα πρότυπα που βασίζονται σε συμβάντα ενδέχεται επίσης να έχουν ένα συμβάν MethodNameCompleted και μέθοδο MethodNameAsyncCancel. Αυτό το μοτίβο επιτρέπει στην κλάση να επικοινωνεί με εκκρεμείς ασύγχρονες λειτουργίες χρησιμοποιώντας το μοντέλο συμβάντων εκχωρητή.


Ακολουθούν μερικές συμβουλές σχετικά με ασύγχρονες μεθόδους:

  • Για υψηλή συνοχή, πρέπει να αποφεύγονται οι ασύγχρονες μέθοδοι
  • Πρέπει να ληφθεί μέριμνα κατά τη μεταφορά κοινών αναφορών αντικειμένων
  • Το EndXXX (που ονομάζεται στο τέλος μιας ασύγχρονης λειτουργίας) πρέπει να καλείται για να ανατρέψει τις εξαιρέσεις και να αποφύγει την αποτυχία
  • Μέσω της σύλληψης και αποθήκευσης όλων των αντικειμένων εξαίρεσης με ασύγχρονη μέθοδο, μπορεί να ανατραπεί κατά τη διάρκεια της κλήσης EndXXX
  • Οι έλεγχοι στο περιβάλλον χρήστη που εκκινούν μακροχρόνιες ασύγχρονες λειτουργίες πρέπει να απενεργοποιηθούν εάν χρειάζονται μόνο για το σκοπό αυτό
  • Οι ασύγχρονες μέθοδοι πρέπει να υλοποιηθούν με την κατανόηση της πολλαπλής θωράκισης και όπου αποδεικνύονται πιο αποτελεσματικές από τη χρήση σύγχρονων μεθόδων.
Τι είναι η κλήση ασύγχρονης μεθόδου; - ορισμός από την τεχνολογία