Diferencia entre barrera en C # 4.0 y WaitHandle en C # 3.0?

stoy recogiendo C # 4.0 y una de las cosas que me confunde es el concepto de barrera.

Esto no es solo como usar elWaitAll método deWaitHandle? ¿Eso no espera a que todos los hilos terminen?

Aprendí la construcción de la barrera de esta página:http: //www.managed-world.com/archive/2009/02/09/an-intro-to-barrier.asp

Sin embargo, parece que laWaitAll método. ¿Qué me estoy perdiendo? ¿Cuál es la diferencia aquí?

Gracias