See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 19013|Vastuse: 0

[Allikas] C# lubab töötada ainult ühe rakenduse eksemplari korrektset kirjutamist

[Kopeeri link]
Postitatud 10.12.2016 14:35:34 | | |
C# programmid lubavad ainult ühel instantsil õiget koodi käivitada
http://www.itsvse.com/thread-3391-1-1.html
(Allikas: Arhitekt)


Allolev kood on samuti vale!! Õige kood nagu eelpool!!


Mõnikord tuleb lubada ainult ühel rakenduse instantsil töötada, ja kui protsess algab, siis kui avastatakse, et rakenduse instants töötab, peatub see automaatselt. Tavaliselt rakendame seda põhifunktsioonis Mutex mutexi kaudu, mis tavaliselt kirjutatakse:

Kui otsime vastuseid, tuleme ja läheme tihti kiirustades, ignoreerides Mutexi omadusi ja ettevaatusabinõusid. Pärast lihtsat testi, okei, tee see ja kasuta. Siin jätame tähelepanuta olulise eeltingimuse:Mutexi nimetamise tavad. Ülaltoodud kirjutamismeetod toimib ühe kasutaja puhul probleemideta; Mitme kasutajaga süsteemis saab iga kasutaja käivitada ühe instantsi, seega ei saa ühte instantsi garanteerida.

Kui pead seda kasutama terminaliserveris ja lubama ainult ühte instantsi, kasuta järgmist meetodit:


Siin on MSDN-i kirjeldus:


Terminaliteenuseid kasutavatel serveritel võib nimega süsteemi mutex omada kahte nähtavuse taset. Kui nimi algab eesliitega "Global\", on mutex nähtav kõigis terminalserveri sessioonides. Kui nimi algab eesliitega "Local\", on mutex nähtav ainult terminaliserveri sessioonis, mis selle lõi. Sellisel juhul võib igal teisel terminaliserveri sessioonil serveris olla eraldi mutex sama nimega. Kui lood nimelise mutexi ilma prefiksi määramata, võtab see prefiksi "Local\". Terminaliserveri sessioonis on kaks mutexit erinevate nimede prefiksiga iseseisvad mutexid ning need kaks mutexit on nähtavad kõigile terminalserveri sessiooni protsessidele. See tähendab, et eesliide nimed "Global" ja "Local" kirjeldavad mutex-nime ulatust terminaliserveri sessiooni suhtes, mitte protsessi suhtes.






Eelmine:Komponentide registreerimine COM interop'iks on halliks
Järgmine:C# programmid lubavad ainult ühel instantsil õiget koodi käivitada
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com