Post() または SendAsync() を介してアイテムを送信することの違いについて混乱しています。私の理解では、すべての場合において、アイテムがデータ ブロックの入力バッファーに到達すると、制御は呼び出し元のコンテキストに返されますよね? では、なぜ SendAsync が必要になるのでしょうか? 私の仮定が間違っているとしたら、反対に、データ ブロックを使用する全体的なアイデアが同時実行および非同期環境を確立することである場合、なぜ誰かが Post() を使用するのでしょうか。
もちろん、Post() が bool を返すのに対し、SendAsync は bool の待機可能な Task を返すという点で、技術的に違いを理解しています。しかし、それにはどのような意味があるのでしょうか? bool の戻り値 (項目がデータ ブロックのキューに配置されたかどうかの確認であると理解しています) はいつ遅延しますか? async/await 同時実行フレームワークの一般的な考え方は理解していますが、ここではあまり意味がありません。ブール値以外に、渡されたアイテムに対して行われた結果は呼び出し元に返されることはなく、代わりに「out-queue」で、リンクされたデータ ブロックに転送されるか、破棄されます。
また、アイテムを送信する際に、2 つの方法にパフォーマンスの違いはありますか?