En général, les deux cadres ont des objectifs complémentaires mais différents.
Le CCR offre des primitives pour la coordination des processus concurrents. La coordination est le ciment qui fait fonctionner tout un ensemble de processus - de sorte que le CCR offre des primitives pour l'échange de messages par le biais de canaux. Les processus peuvent attendre qu'un message arrive sur un canal, ou un certain nombre de canaux, ou l'un d'un certain nombre de canaux et ainsi de suite. C'est un paradigme particulier pour la coordination des processus concurrents qui fonctionne bien. Notez également que ce n'est pas gratuit - vous devez acheter si de Microsoft séparément.
Le TPL offre des primitives et une infrastructure pour paralléliser calculs ou algorithmes semi-automatiquement. L'une des primitives les plus évidentes est la boucle parallèle - ressemble à une boucle for mais tente d'exécuter la boucle en parallèle. Donc, si vous avez un tas de processus que vous souhaitez coordonner à un niveau plus élevé que l'utilisation de verrous et d'états partagés, utilisez le CCR. Si vous avez un processus de calcul intensif que vous souhaitez exécuter efficacement sur une machine multicœur, utilisez le TPL.
Lire concurrency Erlang, est ccr copie concurrency Erlang, façon typique Microsoft. La tâche parellel est multi-threading – mamu