The Task Parallel Library (TPL) in ASP.NET threading simplifies parallelism and concurrency by providing high-level abstractions for executing tasks concurrently. It enables developers to write efficient, scalable, and responsive applications without dealing with low-level thread management.
A typical use case of TPL is processing a large dataset or performing computationally intensive operations. For example, consider an application that calculates the factorial of multiple numbers simultaneously:
using System.Threading.Tasks;
int[] numbers = { 10, 20, 30 };
Parallel.ForEach(numbers, number =>
long factorial = CalculateFactorial(number);
Console.WriteLine($"Factorial of {number} is {factorial}");
static long CalculateFactorial(int n)
return n * CalculateFactorial(n - 1);
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
int[] numbers = { 10, 20, 30 };
Parallel.ForEach(numbers, number =>
{
long factorial = CalculateFactorial(number);
Console.WriteLine($"Factorial of {number} is {factorial}");
});
}
static long CalculateFactorial(int n)
{
if (n == 0) return 1;
return n * CalculateFactorial(n - 1);
}
}
In this example,
Parallel.ForEach
from TPL is used to calculate factorials concurrently, improving performance on multi-core processors. The library handles task scheduling, load balancing, and synchronization, allowing developers to focus on implementing the core logic.