Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 24045|Odgovoriti: 0

[Konzolni program] Učenje nestanovitnih ključnih besed v .net/C#

[Kopiraj povezavo]
Objavljeno na 23. 05. 2018 11:23:40 | | | |
Povezava do MS:Prijava do hiperpovezave je vidna.

Nestanovitna ključna beseda pomeni, da lahko polje spremeni več niti hkrati. Polja, označena kot hlapna, niso omejena z optimizacijo prevajalnika (ob predpostavki, da jih dostopa ena sama nit). To zagotavlja, da je polje vedno prikazano z najnovejšo vrednostjo.

Modifikator volatile se običajno uporablja za polja, do katerih dostopa več niti, vendar dostopa ne serializirajo z uporabo zaklepa.

Hlapne ključne besede lahko uporabimo za naslednje vrste polj:

  • Vrsta citata.
  • Tip kazalca (v nevarnem kontekstu). Upoštevajte, da je kazalec sam lahko spremenljiv, vendar objekt, na katerega kaže, ne more biti spremenljiv. Z drugimi besedami, "kazalca na spremenljiv objekt" ni mogoče razglasiti.
  • Vrste, kot so sbyte, byte, short, ushort, int, uint, char, float in bool.
  • Enum tip z enim od naslednjih osnovnih tipov: bajt, sbyte, short, ushort, int ali uint.
  • Generični tipni parametri, za katere je znano, da so referenčni tipi.
  • IntPtr in UIntPtr.


Ključne besede spremenljivk je mogoče uporabiti le za polja razreda ali strukture.Lokalnih spremenljivk ni mogoče razglasiti za hlapne


Dovolj neumnosti, napiši zanko za testiranje:

Preizkusimo ga 10.000-krat v zanki,ugotovil, da je izhod vrednosti a pravilen, vendar,Ne pojasniVolatile je varen za nitiKer, če ga večkrat testirate, boste ugotovili, da se pojavijo napake pri izračunih! Ker obstaja možnost pravilnega rezultata in možnost napačnega rezultata



Koda:



Ponovno preizkusimo 100.000 zank in ugotovimo, da je vrednost a napačna, ker manjše kot je število zank, manjša je možnost napake, in napaka ni tako očitna, tako kot ni bilo napake po 10.000 zankah pravkar zdaj.

Takrat dodamo zaklep za testiranje in vidimo, da je vrednost a pravilno izračunana, kot smo pričakovali.



Koda:



Povzetek: volatile ne zagotavlja varnosti niti, kot lahko vidite v zgornjem primeru.




Prejšnji:Prenesite orodje za zajem paketov smsniff 2.0 kitajska različica
Naslednji:VS rešitev za oddaljeno odpravljanje napak "Odpravljanje napak traja dlje, kot je pričakovano"
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com