Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 24045|Svar: 0

[Konsolprogram] Flygtig nøgleordslæring i .net/C#

[Kopier link]
Opslået på 23/05/2018 11.23.40 | | | |
MS Link:Hyperlink-login er synlig.

Det flygtige nøgleord angiver, at et felt kan ændres af flere tråde, der kører samtidig. Felter, der er erklæret flygtige, er ikke begrænset af compileroptimering (forudsat at de tilgås af en enkelt tråd). Dette sikrer, at feltet altid gengives med den nyeste værdi.

Den flygtige modifikator bruges typisk for felter, der tilgås af flere tråde, men som ikke serialiserer adgangen med en låsesætning.

Flygtige nøgleord kan anvendes på følgende typer felter:

  • Kildetype.
  • Pointer-type (i en usikker kontekst). Bemærk, at mens pointeren selv kan være foranderlig, kan objektet, den peger på, ikke være foranderligt. Med andre ord kan "peger på et foranderligt objekt" ikke erklæres.
  • typer som Sbyte, Byte, Short, Ushort, Int, Uint, Char, Float og Boool.
  • En enum-type med en af følgende basistyper: byte, sbyte, short, ushort, int eller uint.
  • Generiske typeparametre, der er kendt for at være referencetyper.
  • IntPtr og UIntPtr.


Variable nøgleord kan kun anvendes på felter i en klasse eller struktur.Lokale variable kan ikke erklæres som flygtige


Ikke mere vrøvl, skriv en løkke for at teste den:

Lad os teste det 10.000 gange i en løkke,fandt, at outputtet af en værdi er korrekt, men,Det forklarer ikkeVolatile er trådsikkerFor hvis du tester det mange gange, vil du opdage, at der vil være beregningsfejl! Fordi der er en chance for et korrekt resultat og en chance for et forkert resultat



Kodeks:



Lad os teste 100.000 løkker igen, og vi kan finde, at værdien af a er forkert, fordi jo færre løkker der er, desto mindre er chancen for fejl, og fejlen er ikke så åbenlys, ligesom der ikke var nogen fejl efter 10.000 løkker lige nu.

På dette tidspunkt tilføjer vi en lås for at teste, og det kan ses, at værdien af a beregnes korrekt, som vi forventede.



Kodeks:



Resumé: Volatile garanterer ikke trådsikkerhed, som du kan se i eksemplet ovenfor.




Tidligere:Download pakkegrebsværktøjet smsniff 2.0 i kinesisk version
Næste:VS Remote Debug "Debug-operationen tager længere tid end forventet"-løsning
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com