Visual Studio 2010 (parte 42) – Novas classes para programação paralela
O .NET Framework 4.0 introduz uma série de novas classes úteis para auxiliar o suporte a programação paralela, divididas em três grupos:
Concurrent Collection Classes
System.Collections.Concurrent.BlockingCollection(T)
System.Collections.Concurrent.ConcurrentBag(T)
System.Collections.Concurrent.ConcurrentDictionary(TKey, TValue)
System.Collections.Concurrent.ConcurrentQueue(T)
System.Collections.Concurrent.ConcurrentStack(T)
Essas novas classes trazem meios de trabalharmos com collections com alta performance em cenários de onde múltiplas threads estão manipulando coleções removendo ou adicionando itens.
Synchronization Primitives
System.Threading.Barrier
System.Threading.CountdownEvent
System.Threading.ManualResetEventSlim
System.Threading.SemaphoreSlim
System.Threading.SpinLock
System.Threading.SpinWait
Permite que múltiplas threadings trabalhem com algoritmos de forma paralela.
Lazy Initialization Classes
System.Lazy(T)
System.Threading.ThreadLocal(T)
System.Threading.LazyInitializer
Controla a alocação na memória de forma que seja utilizada apenas quando necessário.