Multi-threading i .NET: Introduksjon og suggestions

Multi-threading i .NET: Innledning og forslag
Multi-threading i .NET: Innledning og forslag
En av de største understatements jeg har hørt på en nyhetsgruppe ble gjort Patricia Shanahan, i en Java nyhetsgruppe i 2001: " Multi-threaded programmering trenger litt omsorg ". Multi-threading er trolig en av de verste forstått aspekter av programmering, og i disse dager nesten alle program programmerere trenger å forstå det til en viss grad. Denne artikkelen fungerer som en introduksjon til multi-threading og gir noen hint og tips for hvordan du gjør det trygt. Advarsel: Jeg er ikke en ekspert på emnet, og når reelle
ekspertene begynner å diskutere det i detalj, hodet mitt begynner å spinne litt. Men jeg har prøvd å ta hensyn til de som vet hva de gjør, og forhåpentligvis innholdet i denne artikkelen skjemaet minst en del av en multi-threading " best practice ".
Denne artikkelen bruker C # typen shorthands hele - int for Int32 etc. Jeg håper dette gjør det enklere for C # utviklere å lese, og vil ikke hindre noen andre utviklere for mye. Det er også bare snakker om C # måter å erklære variabler å være volatile og låse skjermer. Utviklere som bruker andre språk finner ekvivalenter i sin egen foretrukne miljø, er jeg sikker på.
Dette er en lang artikkel. Det er nesten helt sikkert altfor lang tid å lese gjennom riktig i en enkelt økt. Men jeg har ikke delt den opp i flere sider som jeg har ingen anelse om hvor du
ønsker å stoppe og ta en pause. Men du kan hoppe tilbake til der du enkelt var med følgende delen koblinger:

Innledning: Hva er multi-threading?

Hvordan multi-threading arbeid i .NET?

Multi-threaded " Hei, verden "

Data løpene

Eksklusiv tilgang - Monitor.Enter /Exit og låsen uttalelse

Vranglåser

Flere Monitor metoder

Volatilitet og foreldede data

atomiteten

En snarvei for noen tilfeller: forriglet klasse

Velge hva som skal låses

Threading i Windows Forms

tråden basseng og asynkrone metoder

timere

Slå arbeideren tråder grasiøst

samlet tips

Resources