.NET は、IAsyncResult、BeginMethod()、EndMethod() という非同期パターンを提供します。Method() を呼び出すだけで、対応する同期パターンを使用するよりも、このパターンを使用する方が常に優れていると思います。
UI を処理する場合、確実に非同期パターンを使用すると、同期パターンよりも優先されます。これは、Method() 内のジョブが実行されている間、他のタスクを現在のスレッドで処理できるためです。
しかし、サーバーを開発している場合はどうでしょう。Method() が DB 呼び出しを行い、DB 呼び出しから結果を取得する前に Method() を処理する現在のスレッドが何もしていないとします。この場合、非同期パターンに必要なオーバーヘッドをいくらか節約できるため、同期パターンを使用する方が非同期パターンよりも優れていると思います。
どう思いますか?すべての場合において、サーバー開発でも同期パターンを使用するよりも、(リソースを節約するという観点から) 非同期パターンを使用する方が常に優れていますか?
ありがとう