Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 19013|Vastaus: 0

[Lähde] C# sallii vain yhden sovelluksen instanssin oikean kirjoittamisen

[Kopioi linkki]
Julkaistu 10.12.2016 14.35.34 | | |
C#-ohjelmat sallivat vain yhden instanssin suorittaa oikean koodin
http://www.itsvse.com/thread-3391-1-1.html
(Lähde: Arkkitehti)


Alla oleva koodi on myös väärä!! Oikea koodi kuten yllä!!


Joskus meidän täytyy sallia vain yhden sovelluksen instanssi, ja kun prosessi alkaa, jos sovellus huomaa, että sovellus on käynnissä, se pysähtyy automaattisesti. Toteutamme sen yleensä pääfunktiossa Mutex mutexin kautta, joka yleensä kirjoitetaan:

Kun etsimme vastauksia, tulemme ja menemme usein kiireessä, unohtaen Mutexin ominaisuudet ja varotoimet. Yksinkertaisen testin jälkeen, okei, ota se ja käytä sitä. Tässä vaiheessa unohdamme tärkeän edellytyksen:Mutex-nimityksen käytännöt. Yllä oleva kirjoitustapa toimii ongelmitta yhdellä käyttäjällä; Monikäyttäjäjärjestelmässä jokainen käyttäjä voi käynnistää yhden instanssin, joten yksittäistä instanssia ei voida taata.

Jos sinun täytyy käyttää sitä päätepalvelimella ja sallia vain yksi instanssi, käytä seuraavaa menetelmää:


Tässä on MSDN:n kuvaus:


Terminaalipalveluita pyörittävillä palvelimilla nimetyllä järjestelmän mutexilla voi olla kaksi näkyvyystasoa. Jos nimi alkaa etuliitteellä "Global\", mutex näkyy kaikissa terminaalipalvelinistunnoissa. Jos nimi alkaa etuliitteellä "Local\", mutex näkyy vain terminaalipalvelimen istunnossa, joka sen loi. Tässä tapauksessa jokaisella toisella palvelimen päätepalvelimen istunnolla voi olla erillinen mutex samalla nimellä. Jos luot nimetyn mutexin ilman etuliitettä, se ottaa etuliitteen "Local\". Terminaalipalvelinistunnossa kaksi mutexia, joilla on eri nimietuliitteet, ovat itsenäisiä mutexeja, ja nämä kaksi mutexia näkyvät kaikille terminaalipalvelinistunnon prosesseille. Eli etuliitteet "Global" ja "Local" kuvaavat mutex-nimen aluetta suhteessa terminaalipalvelinistuntoon, eivät prosessiin.






Edellinen:Komponenttien rekisteröinti COM-interoperaatiota varten on harmaana
Seuraava:C#-ohjelmat sallivat vain yhden instanssin suorittaa oikean koodin
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com