それは古い質問ですが、これを読んでいる人にとっては...
場合によります。1Gbps のリンクを 50B のメッセージで飽和させようとすると、生のソケットを介した単純なノンブロッキング送信でも CPU バウンドになります。一方、1Mbps のスループットに満足している場合、またはメッセージが 10KB を超えている場合は、これらのフレームワークのいずれかが機能します。
低帯域幅の状況では、使いやすさを優先することをお勧めします。つまり、async/await、Dataflow、Rx、TPL の順です。高帯域幅のアプリケーションは、低帯域幅であるかのようにプロトタイプを作成し、後で最適化する必要があることに注意してください。
Rx は高い同時実行性を考慮して設計されていないため、真の高帯域幅アプリケーションには、Rx を介した Dataflow をお勧めします。Raw TPL は最下層であり、複雑さを処理できれば、オーバーヘッドを最小限に抑えることが保証されます。専用スレッドを効率的に使用できれば、さらに高速になります。Async/await と Dataflow IMO では、パフォーマンスに違いはありません。オーバーヘッドは同等に見えるので、より適したものを選択してください。