SpinLock
Strukturen SpinLock är en lågnivåsynkroniseringssynkronisering på låg nivå som snurrar medan den väntar på att få ett lås. På datorer med flera kärnor, när väntetiderna förväntas vara korta och när konkurrensen är minimal, SpinLock kan fungera bättre än andra typer av lås. Vi rekommenderar dock att du endast använder SpinLock när du genom profilering fastställer att System.Threading.Monitor metoden eller Interlocked metoderna avsevärt minskar programmets prestanda.
SpinLock kan ge trådens tidssektor även om den ännu inte har fått låset. Det gör detta för att undvika inversion av trådprioritet och för att göra det möjligt för skräpinsamlaren att göra framsteg. När du använder en SpinLockkontrollerar du att ingen tråd kan hålla låset under mer än en kort tidsperiod och att ingen tråd kan blockeras medan låset finns.
Eftersom SpinLock är en värdetyp måste du uttryckligen skicka den med referens om du vill att de två kopiorna ska referera till samma lås.
Mer information om hur du använder den här typen finns i System.Threading.SpinLock. Ett exempel finns i Så här använder du SpinLock för lågnivåsynkronisering.
SpinLockstöder ett trådspårningsläge- som du kan använda under utvecklingsfasen för att spåra tråden som håller låset vid en viss tidpunkt. Trådspårningsläge är mycket användbart för felsökning, men vi rekommenderar att du inaktiverar det i versionsversionen av programmet eftersom det kan försämra prestandan. Mer information finns i Så här aktiverar du trådspårningsläge i SpinLock.