Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 19792|Svar: 0

[Källa] Användning av SyncRoot i StringDictionary

[Kopiera länk]
Publicerad på 2016-11-23 14:26:38 | | | |

C# objektorienterad programmering erbjuder många användarvänliga operationsklasser, denna StringDictionary är en samling klasser som specialiserar sig på att lagra strängar som nycklar och värden, betydelsen av denna klass är: C# vet att strängen i värdetypen är ganska allmänt använd, andra värdetyper kan också konverteras till motsvarande strängtyper, detta är betydelsen av denna samling, men du kan fortfarande använda andra samlingsobjekt för att ersätta den, men var uppmärksam på en punkt, Om det är stränglagring kan detta minska minnesförlusten och den tid det tar att köra programmet


SyncRoot kan användas för att synkronisera åtkomst till StringDictionary

För att uttrycka det rakt på sak, det är konceptet lås, låt oss skriva ett program för att testa det:

Koden är följande:



Vi har två trådar samtidigt för att lägga till data i StringDictionary-ordboken,

Skillnaden i exekveringstid mellan den första tråden och den andra tråden är en sekund, för att öka tidsskillnaden och förhindra att exekveringen blir för snabb.

Du kan se att trådarna har gått till de två metoderna, och när man lägger till den andra datan har de väntat på att den första datan ska läggas till innan den andra läggs till, och adderingstiden går väldigt snabbt.

Nedan kommer vi att skriva det på ett annat sätt för att göra det lättare att förstå:





3 trådar öppnas, och data läggs till, och de 3 trådarna exekveras nästan samtidigt, men när datan läggs till är varje tråd 10 sekunder ifrån varandra.

Sammanfattningsvis kan vi vid multitrådad åtkomst använda SyncRoot för att säkerställa trådsäkerheten




Föregående:Hur man använder WPF Trigger för att byta knappar
Nästa:c# Använd OCR för att känna igen kinesiska bilder
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com