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

Άποψη: 24385|Απάντηση: 4

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

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


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



Βρείτε, αμέσως, κάντε κλικ στο λογισμικό, θα σας ζητηθεί "Μια παρουσία έχει εκτελεστεί", αλλά,Αφού περιμένετε 30 δευτερόλεπτα, κάντε κλικ στο λογισμικό και εκτελείται ξανά με επιτυχίαΜια φορά !!

Είναι κρίμα.Ο παραπάνω κώδικας είναι εντάξει στη λειτουργία DEBUG, αλλά δεν λειτουργεί στο RELEASE.
Το πρόβλημα είναι ότι το Mutex δηλώνεται ως τοπική μεταβλητή και σε λειτουργία relese λόγω προβλημάτων βελτιστοποίησης, πιθανώς επειδή ο μεταγλωττιστής πιστεύει ότι το Mutex δεν χρησιμοποιείται πλέον

χρησιμοποιημένο, ανακυκλωμένο, δοκιμασμένο από εμένα,

Βάλτε το Mutex από πάνω και ορίστε το ως στατική μεταβλητή σε !!ΔεξιάΟ κωδικός έχει ως εξής:





Παρτιτούρα

Αριθμός συμμετεχόντων1ΜΒ+1 συνεισφέρω+1 Κατάρρευση λόγος
Ένας μικρός αρχάριος που του αρέσει να μαθαίνει + 1 + 1 Σαν ένα!

Δείτε όλες τις αξιολογήσεις





Προηγούμενος:Η C# επιτρέπει τη σωστή εγγραφή μόνο μιας παρουσίας της εφαρμογής
Επόμενος:Πώς να ρυθμίσετε αυτόματα την εκκίνηση λογισμικού.
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 10/12/2016 3:02:58 μ.μ. |
Τα στατικά πεδία δεν ανακυκλώνονται από το GC, τα στατικά πεδία εκχωρούνται στο σωρό φορτωτή, στο σωρό χωρίς GC και δεν ελέγχονται από το GC.

Τα στατικά μέλη (στατικών κλάσεων ή όχι) ανακυκλώνονται μόνο όταν φτάσουν στο AppDomain.UnLoad. Οι στατικές επιτρέπεται να έχουν μόνο στατικά μέλη
Δημοσιεύτηκε στις 6/12/2017 11:48:05 π.μ. |
Έμαθα, σας ευχαριστώ που μοιραστήκατε
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 23/2/2018 2:59:01 μ.μ. |
Άλλες υλοποιήσεις:

Μέθοδος εκκίνησης:



 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 3/10/2025 4:10:11 μ.μ. |
Το .NET/C# υλοποιεί το πρόγραμμα singleton που βασίζεται σε Mutex και MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com