Aktivitetsparallellt bibliotek (TPL)

TPL (Task Parallel Library) är en uppsättning offentliga typer och API:er i System.Threading namnrymderna och System.Threading.Tasks . Syftet med TPL är att göra utvecklare mer produktiva genom att förenkla processen med att lägga till parallellitet och samtidighet i program. TPL skalar dynamiskt graden av samtidighet för att använda alla tillgängliga processorer mest effektivt. Dessutom hanterar TPL partitioneringen av arbetet, schemaläggningen av trådar på , annulleringsstöd, tillståndshantering och annan information på ThreadPoollåg nivå. Med hjälp av TPL kan du maximera kodens prestanda samtidigt som du fokuserar på det arbete som programmet är utformat för att utföra.

I .NET Framework 4 är TPL det bästa sättet att skriva flertrådad och parallell kod. All kod är dock inte lämplig för parallellisering. Om en loop till exempel bara utför en liten mängd arbete på varje iteration, eller om den inte körs för många iterationer, kan parallelliseringskostnaderna göra att koden körs långsammare. Dessutom ökar parallellisering, precis som all kod med flera gångar, komplexiteten i programkörningen. Även om TPL förenklar flertrådade scenarier rekommenderar vi att du har en grundläggande förståelse för trådbegrepp, till exempel lås, dödlägen och konkurrensförhållanden, så att du kan använda TPL effektivt.

Title Description
Dataparallellitet Beskriver hur du skapar parallella for och foreach loopar (For och For Each i Visual Basic).
Aktivitetsbaserad asynkron programmering Beskriver hur du skapar och kör uppgifter implicit med hjälp Parallel.Invoke av eller explicit med hjälp Task av objekt direkt.
Dataflöde Beskriver hur du använder dataflödeskomponenterna i TPL-dataflödesbiblioteket för att hantera flera åtgärder. Dessa åtgärder måste kommunicera med varandra och bearbeta data när de blir tillgängliga.
Potentiella fallgropar i data och uppgiftsparallellitet Beskriver några vanliga fallgropar och hur du undviker dem.
Parallell LINQ (PLINQ) Beskriver hur du uppnår dataparallellitet med LINQ-frågor.
Parallell programmering Nod på översta nivån för parallell .NET-programmering.

Se även