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

Άποψη: 6386|Απάντηση: 3

[Πηγή] Χρησιμοποιούνται κανάλια ουράς υψηλής απόδοσης .NET Core

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2023-5-8 22:11:01 | | | |
Το System.Threading.Channels είναιΝέοι τύποι συλλογής που εισήχθησαν μετά το .NET Core 3.0Μπορεί να χρησιμοποιηθεί για την ουρά μηνυμάτων, την παραγωγή και την κατανάλωση δεδομένων και τα δημόσια API Writer και Reader αντιστοιχούν στους παραγωγούς και τους καταναλωτές μηνυμάτων, γεγονός που καθιστά επίσης το κανάλι πιο συνοπτικό και εύκολο στη χρήση.

Το .NET/C# βασίζεται στην ουρά εργασιών παρασκηνίου BlockingCollection
https://www.itsvse.com/thread-9528-1-1.html


Βιβλιοθήκη System.Threading.Channels:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Κατηγορία καναλιού<T>:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Τύπος καναλιού

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

Δημιουργία καναλιού με περιορισμένη χωρητικότητα:Channel.CreateBounded<string>(100);
Δημιουργήστε ένα κανάλι με απεριόριστη χωρητικότητα:Channel.CreateUnbounded<string>();

Δημιουργήστε απεριόριστα κανάλια

Κατά τη δημιουργία ενός καναλιού, μπορείτε να ρυθμίσετε το SingleWriter και το SingleReader του ChannelOptions να καθορίζουν έναν μεμονωμένο παραγωγό και καταναλωτή όταν το κανάλι έχει οριστεί σε false, όταν έχει οριστεί το SingleWriter = true, θα περιορίσει μόνο έναν παραγωγό να γράφει δεδομένα ταυτόχρονα, το SingleReader = true είναι το ίδιο.


Δοκιμάστε να ανοίξετε τρία νήματα παραγωγού και ένα νήμα καταναλωτή με τον ακόλουθο κώδικα:



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


Στον παραπάνω κώδικα, οι καταναλωτές διαβάζουν δεδομένα ένα προς ένα για να εκτελέσουν λειτουργίες, πώς να το φτιάξουνΔεδομένα μαζικής κατανάλωσης καταναλωτώνΤι γίνεται με ένα κομμάτι επεξεργασίας;

Δημιουργήστε μια νέα επέκταση ChannelReaderExtensions με τον ακόλουθο κώδικα:


Προσαρμόστε τον κωδικό καταναλωτή ως εξής:



(Τέλος)




Προηγούμενος:ASP.NET Core (18) Προσαρμόστε μια απλή κρυφή μνήμη εξόδου OutputCache
Επόμενος:[Πραγματική μάχη]. Βιβλιοθήκη εντοπισμού διευθύνσεων IP εκτός σύνδεσης NET/C# (σπίτι).
Δημοσιεύτηκε στις 2023-5-8 22:50:27 |
Μαθαίνω να μαθαίνω
Δημοσιεύτηκε στις 2023-5-12 10:07:46 |
Μαθαίνω να μαθαίνω
Δημοσιεύτηκε στις 2023-5-16 17:21:37 |
Μαθαίνω να μαθαίνω
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com