По большому счету обе системы имеют взаимодополняющие, но разные цели.
CCR предлагает примитивы для координации параллельных процессов. Координация является связующим звеном, которое заставляет работать кучу процессов в целом - поэтому CCR предлагает примитивы для обмена сообщениями по так называемым каналам. Процессы могут ожидать поступления сообщения по каналу или по нескольким каналам или по любому из нескольких каналов и так далее. Это особая парадигма для координации параллельных процессов, которая работает хорошо. Обратите внимание, что это не бесплатно - вы должны купить, если у Microsoft отдельно.
TPL предлагает примитивы и инфраструктуру для параллелизации вычислений или алгоритмов полуавтоматически. Один из наиболее очевидных примитивов - параллель цикла for - выглядит как цикл for, но пытается выполнить цикл параллельно.
Итак, если у вас есть куча процессов, которые вы хотите координировать на более высоком уровне, чем при использовании общего состояния и блокировок, используйте CCR. Если у вас интенсивный вычислительный процесс, который вы хотите эффективно выполнять на многоядерном компьютере, используйте TPL.