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

Άποψη: 21695|Απάντηση: 1

[Πηγή] .net/c# Να είστε προσεκτικοί με συμβάντα που παρασύρουν το πρόγραμμά σας προς τα κάτω

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 21/9/2016 4:05:58 μ.μ. | | | |
Τα συμβάντα φορτώνονται και εκτελούνται στο κύριο νήμα και εάν το πρώτο συμβάν στο κύριο νήμα δεν έχει ολοκληρωθεί, έρχεστε στο δεύτερο συμβάν, όπως και άλλα προγράμματα στο κύριο νήμα, περιμένετε να ολοκληρωθεί η επεξεργασία του προηγούμενου πριν επεξεργαστείτε το επόμενο ή άλλο πρόγραμμα ή συμβάν στο κύριο νήμα.




Το παραπάνω είναι ότι ενθυλάκωσα μόνος μου ένα αντικείμενο και στο αντικείμενο ενθυλάκωσα μόνος μου ένα γεγονός.

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

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

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

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

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

Γιατί??? Τέλος, έμαθα από το διαδίκτυο ότι το συμβάν βρίσκεται στο κύριο νήμα και εάν το πρώτο συμβάν δεν υποβληθεί σε επεξεργασία, θα εμποδίσει την εκτέλεση του επόμενου συμβάντος,

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

Λύση:

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

Για έναν μεγάλο αριθμό μεθόδων συμβάντων που ονομάζονται, ελπίζω να ανοίξετε ένα νήμα για να το αντιμετωπίσετε, όπως: socket ή httplistener, κ.λπ. (ο όγκος των δεδομένων είναι μικρός και δεν μπορείτε να το δείτε, όταν ο όγκος των δεδομένων είναι μεγάλος, χαχα, θα πεθάνει απευθείας)




Προηγούμενος:Η C# δημιουργεί κωδικούς διευθύνσεων email μαζικά
Επόμενος:Ανάλυση αναπαραγωγής εκπομπής cloud, ανάλυση διεπαφής ανεμοστρόβιλου Thunderbolt και QQ
Δημοσιεύτηκε στις 22/9/2016 9:23:17 π.μ. |
Κάποιος δημοσίευσε πολύ καλά, υποστήριξη
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com