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

Άποψη: 57872|Απάντηση: 7

[Πηγή] c# ενσωματώνει μια καθολική ουρά QueueHelper

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 29/8/2018 10:39:11 π.μ. | | | |
Στην καθημερινή ανάπτυξη, μπορούμε να χρησιμοποιήσουμε ουρές, οι οποίες είναι μια δομή αποθήκευσης που μπορεί να επιτύχει "first-in, first-out".

Σενάρια εφαρμογής: γράψτε αρχεία καταγραφής, στείλτε email κ.λπ

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

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

Καθολική προσέγγιση ουράς:

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

Η ασφαλής ουρά νημάτων ConcurrentQueue διασφαλίζει ότι δεν θα υπάρχουν εξαιρέσεις σε ένα περιβάλλον πολλαπλών νημάτων.

ManualResetEvent για τον έλεγχο του σήματος του νήματος,Στο παρελθόν, ελέγχαμε την ουρά για δεδομένα κάθε λίγα δευτερόλεπτα ή λεπτάΤώρα, προσθέτουμε τα δεδομένα στην ουρά και χρειάζεται μόνο να περάσουμε ένα σήμα!

Χρήση:

(Τέλος)




Προηγούμενος:Ρύθμιση Διαδικασία παραγωγής πακέτου εγκατάστασης έργου Θέλω να αντιγράψω την ερώτηση του πρωτεύοντος αρχείου εξόδου
Επόμενος:Το ζήτημα των redis Chinese δεν μπορεί να εμφανιστεί σωστά
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 24/5/2019 10:13:59 π.μ. |
Προτείνετε ένα πλαίσιο:

asp.net σεμινάριο πλαισίου hangfire εργασιών στο παρασκήνιο
https://www.itsvse.com/thread-7611-1-1.html
(Πηγή: Architect_Programmer)
Δημοσιεύτηκε στις 10/9/2019 10:26:26 π.μ. |
Γιατί η μέθοδος Execute στην κλάση Test δεν εκτελείται όταν την εκτελώ;
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 10/9/2019 9:52:44 μ.μ. |
hano7758 Δημοσιεύτηκε στις 2019-9-10 10:26
Γιατί η μέθοδος Execute στην κλάση Test δεν εκτελείται όταν την εκτελώ;

Μπορείτε να δημοσιεύσετε τον κωδικό σας;
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 23/1/2021 11:53:46 π.μ. |
Το .NET/C# βασίζεται στην ουρά εργασιών παρασκηνίου BlockingCollection
https://www.itsvse.com/thread-9528-1-1.html

Δημοσιεύτηκε στις 26/7/2021 2:09:53 μ.μ. |
Πώς μπορείτε να δείτε τον κώδικα
Δημοσιεύτηκε στις 26/9/2022 10:20:08 μ.μ. |
Πρέπει να μάθω πώς να το χρησιμοποιώ
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com