Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 24385|Válasz: 4

[Forrás] A C# programok csak egy példánynak engedik a helyes kód futtatását

[Linket másol]
Közzétéve 2016. 12. 10. 14:55:50 | | | |


Írtam egy forgalomfigyelő szoftvert, amit csak egyszer akarok futtatni a számítógépen, és a kód a következő:



Azonnal megtaláld a szoftvert, és kattints a szoftverre, az azt mutatja, hogy "Egy példány elindult", de,30 másodperc várakozás után kattints a szoftverre, és újra sikeresen futEgyszer!!

Kár.A fenti kód rendben van DEBUG módban, de RELEASE-ben nem működik.
A probléma az, hogy a Mutex helyi változóként van kihirdetve, és relese módban van optimalizálási problémák miatt, valószínűleg azért, mert a fordító úgy gondolja, hogy a Mutex már nem használatos

használva, újrahasznosítva, tesztelve magam által,

Tedd a Mutexet a tetejére, és állítsd statikus változóként !!JobbraA kódex a következő:





Pontszám

A résztvevők száma1MB+1 hozzájárul+1 Összeomlás ok
Egy kis kezdő, aki szeret tanulni + 1 + 1 Mint egy!

Minden értékelés megtekintése





Előző:A C# csak egy példány helyes írását engedi az alkalmazás futtatására
Következő:Hogyan állítsuk be automatikusan a szoftverindítást.
 Háziúr| Közzétéve 2016. 12. 10. 15:02:58 |
A statikus mezőket nem újrahasznosítja a GC, a statikus mezőket a Loader halomban, nem GC halomban helyezik el, és nem a GC által irányítható.

A statikus tagokat (statikus osztályokból vagy sem) csak akkor kerülnek újra, amikor elérik az AppDomain.UnLoad-ot. A statikus osztályoknak csak statikus tagjai lehetnek
Közzétéve 2017. 12. 06. 11:48:05 |
Tanultam, köszönöm, hogy megosztottad
 Háziúr| Közzétéve 2018. 02. 23. 14:59:01 |
Egyéb megvalósítások:

Indítási módszer:



 Háziúr| Közzétéve 2025. 10. 03. 16:10:11 |
A .NET/C# programprogramot valósít meg a Mutex és a MemoryMappedFile alapján
https://www.itsvse.com/thread-10808-1-1.html
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com