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

Näkymä: 24385|Vastaus: 4

[Lähde] C#-ohjelmat sallivat vain yhden instanssin suorittaa oikean koodin

[Kopioi linkki]
Julkaistu 10.12.2016 14.55.50 | | | |


Kirjoitin liikennevalvontaohjelman, jonka haluan tietokoneen pyörivän vain kerran, ja koodi on seuraava:



Löydä heti, klikkaa ohjelmistoa, se kysyy "Instanssi on ajettu", mutta,Odotettuani 30 sekuntia, klikkaa ohjelmistoa, ja se käynnistyy taas onnistuneestiKerran!!

Harmi.Yllä oleva koodi toimii hyvin DEBUG-tilassa, mutta se ei toimi RELEASE-tilassa.
Ongelma on, että Mutex julistetaan paikalliseksi muuttujaksi ja relese-tilassa optimointiongelmien vuoksi, mahdollisesti siksi, että kääntäjä katsoo, ettei Mutexia enää käytetä

käytetty, kierrätetty, testattu itse,

Laita Mutex päälle ja aseta se staattiseksi muuttujaksi !!OikeaKoodi on seuraava:





Pistetilanne

Osallistujien määrä1MB+1 myötävaikuttaa+1 Romahdus syy
Pieni aloittelija, joka rakastaa oppia + 1 + 1 Kuin yksi!

Katso kaikki arviot





Edellinen:C# sallii vain yhden sovelluksen instanssin oikean kirjoittamisen
Seuraava:Kuinka asettaa ohjelmistokäynnistys automaattisesti.
 Vuokraisäntä| Julkaistu 10.12.2016 15.02.58 |
Staattisia kenttiä ei kierrätetä GC:n toimesta, staattiset kentät varataan Loader-kasaan, ei-GC-kasaan, eikä niitä ohjata GC.

Staattiset jäsenet (staattisia luokkia tai ei) kierrätetään vain, kun ne saavuttavat AppDomain.UnLoadin. Staattisilla luokilla saa olla vain staattisia jäseniä
Julkaistu 6.12.2017 11.48.05 |
Oppinut, kiitos kun jaoit kokemuksesi
 Vuokraisäntä| Julkaistu 23.2.2018 14.59.01 |
Muut toteutukset:

Käynnistysmenetelmä:



 Vuokraisäntä| Julkaistu 3.10.2025 16.10.11 |
.NET/C# toteuttaa ohjelman singleton, joka perustuu Mutex- ja MemoryMappedFile-tiedostoihin
https://www.itsvse.com/thread-10808-1-1.html
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