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

Άποψη: 19029|Απάντηση: 0

[Πηγή] Η C# εκτελεί ασφαλείς λειτουργίες διέλευσης σε περιβάλλον πολλαπλών νημάτων

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 18/10/2016 1:55:48 μ.μ. | | |

Αυτό το άρθρο χρησιμοποιεί τη Λίστα ως αντικείμενο λειτουργίας
Το MSDN δίνει επίσημα τη δήλωση ασφάλειας του νήματος του List:
Αυτός ο τύπος δημόσιου στατικού μέλους είναι ασφαλής για νήματα. Ωστόσο, κανένα μέλος της παρουσίας δεν μπορεί να εγγυηθεί ότι είναι ασφαλές για νήματα.
Εφόσον η συλλογή δεν τροποποιηθεί, η Λίστα μπορεί να υποστηρίξει πολλούς αναγνώστες ταυτόχρονα. Η απαρίθμηση μέσω ενός συνόλου δεν είναι εγγενώς μια διαδικασία ασφαλής για το νήμα. Στη σπάνια περίπτωση που μια απαρίθμηση ανταγωνίζεται μία ή περισσότερες προσβάσεις εγγραφής, ο μόνος τρόπος για να διατηρήσετε τα νήματα ασφαλή είναι να κλειδώσετε τη συλλογή για όλη τη διάρκεια της απαρίθμησης. Για να επιτρέψετε σε πολλά νήματα να έχουν πρόσβαση στη συλλογή για λειτουργίες ανάγνωσης και εγγραφής, πρέπει να υλοποιήσετε το δικό σας συγχρονισμό.
Εάν δεν κάνετε συγχρονισμό;
Εάν ένα νήμα εκτελεί μια λειτουργία διαγραφής και ένα νήμα εκτελεί μια λειτουργία διέλευσης, τότε κατά τη διάρκεια της διαδικασίας διέλευσης, η συλλογή τροποποιείται, γεγονός που θα προκαλέσει την εμφάνιση μιας εξαίρεσης InvalidOperationException, προτρέποντας: η συλλογή έχει τροποποιηθεί. Οι λειτουργίες απαρίθμησης δεν μπορούν να εκτελεστούν.
Πώς να συγχρονίσετε για να διασφαλίσετε την ασφάλεια της διέλευσης
Κρίσιμες ζώνες, mutexes χρησιμοποιούνται εδώ για την ασφάλεια της διαδικασίας διέλευσης νήματος, το παράδειγμα κώδικα έχει ως εξής:






Προηγούμενος:Λύση στο σφάλμα υπογραφής jssdk του επίσημου λογαριασμού WeChat στην China Unicom
Επόμενος:asp.net Καθολικός χειρισμός εξαιρέσεων MVC και αρχεία καταγραφής εξαιρέσεων
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com