Diferença entre Barreira em C # 4.0 e WaitHandle em C # 3.0?

Estou pegando o C # 4.0 e uma das coisas que está me confundindo é o conceito de barreir

Isso não é apenas como usar oWaitAll método deWaitHandle? Isso não espera que todos os threads terminem?

Aprendi a construção de barreira nesta página:http: //www.managed-world.com/archive/2009/02/09/an-intro-to-barrier.asp

No entanto, parece que oWaitAll método. o que estou perdendo? Qual a diferença aqui?

Obrigado