Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 24385|Atbildi: 4

[Avots] C# programmas ļauj tikai vienai instancei palaist pareizo kodu

[Kopēt saiti]
Publicēts 10.12.2016 14:55:50 | | | |


Es uzrakstīju satiksmes uzraudzības programmatūru, kuru vēlos, lai dators darbotos tikai vienu reizi, un kods ir šāds:



Nekavējoties atrodiet programmatūru, tā parādīs "Instance ir palaista", bet,Pēc 30 sekunžu gaidīšanas noklikšķiniet uz programmatūras, un tā atkal veiksmīgi darbojasVienreiz !!

Žēl.Iepriekš minētais kods ir labi DEBUG režīmā, bet tas nedarbojas RELEASE.
Problēma ir tā, ka Mutex tiek deklarēts kā lokāls mainīgais un relese režīmā optimizācijas problēmu dēļ, iespējams, tāpēc, ka kompilators domā, ka Mutex vairs netiek izmantots

lietots, pārstrādāts, pārbaudīts pats,

Uzlieciet Mutex virsū un iestatiet to kā statisku mainīgo, lai !!Pa labiKods ir šāds:





Vērtējums

Dalībnieku skaits1MB+1 Veicināt+1 Sakļaut iemesls
Mazliet iesācējs, kuram patīk mācīties + 1 + 1 Tāpat kā viens!

Skatīt visus vērtējumus





Iepriekšējo:C# ļauj pareizi rakstīt tikai vienu lietojumprogrammas instanci
Nākamo:Kā automātiski iestatīt programmatūras sāknēšanu.
 Saimnieks| Publicēts 10.12.2016 15:02:58 |
GC nepārstrādā statiskos laukus, statiskos laukus piešķir iekrāvēja kaudzē, kas nav GC kaudze, un GC tos nekontrolē.

Statiskie dalībnieki (statisko klašu vai nē) tiek pārstrādāti tikai tad, kad tie sasniedz AppDomain.UnLoad. Statiskajām klasēm ir atļauts būt tikai statiskiem dalībniekiem
Publicēts 06.12.2017 11:48:05 |
Uzzināju, paldies, ka dalījāties
 Saimnieks| Publicēts 23.02.2018 14:59:01 |
Citas ieviešanas:

Startēšanas metode:



 Saimnieks| Publicēts 03.10.2025 16:10:11 |
.NET/C# ievieš programmu singleton, kas balstīta uz Mutex un MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com