私はasp.Net MVCでC#でasync/awaitを使用する方法を理解しようとしています。 主なポイントは、IOを実行しているときにワーカープールからスレッドを解放するためにasp.netが役立つためです(他のものを処理できるようになります)。そうするためには、非同期/待機モードの修飾子をIOコールからコントローラアクションまでのメソッドから昇格させる必要があります。コントローラに昇格しないと、なぜasyncを使用しますか?
コントローラの非同期/待機をプロモートせずにこの機能を使用することには何らかのポイントがありますか? (たとえば、Asyncメソッドの呼び出しの後にTask.Waitを追加するなど)。
基本的には、ホストシステムが非同期コードの場合と同じことを基本的に手作業で行っている場合、他のタスクが実行されている間にそれを行うことができます。それはかなり複雑かもしれませんが、実行可能です。非同期にはまったく魔法がありません。これは主に、最下位のコードが他のことを実行できるようにし、最下位のインフラストラクチャコードが何かを完了するのを待つ方法です。ホストシステムはトップレベルでサポートしていますが、コードでもサポートしています。しかし、シンクロナイズドオペレーションの背後にある非同期オペレーションを単純に「隠す」のであれば、本質的に利益を無効にします。 – David