En general, ambos marcos tienen objetivos complementarios pero diferentes.
El CCR ofrece primitivas para la coordinación de los procesos concurrentes. La coordinación es el pegamento que hace que muchos procesos funcionen como un todo, por lo que el CCR ofrece primitivas para intercambiar mensajes a través de los llamados canales. Los procesos pueden esperar a que llegue un mensaje a un canal, a varios canales o a cualquiera de varios canales, entre otros. Este es un paradigma particular para la coordinación de procesos concurrentes que funciona bien. Tenga en cuenta también que no es gratis, debe comprarlo de Microsoft por separado.
El TPL ofrece primitivas e infraestructura para paralelizar cálculos o algoritmos de forma semiautomática. Una de las primitivas más obvias es el bucle for paralelo: se parece a un bucle for, pero intenta ejecutar el bucle en paralelo.
Por lo tanto, si usted tiene un montón de proceso que desea coordinar en un nivel más alto que con el estado y los bloqueos compartidos, utilice el CCR. Si tiene un proceso de cálculo intensivo que le gustaría ejecutar de manera eficiente en una máquina multi-core, use el TPL.
Leer Erlang concurrencia, CCR es copia de concurrencia Erlang, forma típica de Microsoft. Task parellel es multi threading – mamu