.NET 4.5 で非同期タスクを並列実行し、結果を収集します
紹介:
長時間実行タスクの実行とその結果の収集を同時に行うことは、.NET アプリケーションの一般的な要件です。 .NET 4.5 では、非同期プログラミングの導入により、従来のスレッドベースのアプローチが進化しました。この記事では、.NET 4.5 で非同期タスクの並列実行を実装するための最良の方法を検討します。
元のコード:
提供されたコードは、Task.Run() を使用して 2 つの長時間実行タスクを起動し、次に Result を使用してそれらの結果を取得するという基本的なアプローチを示しています。ただし、この方法にはいくつかの制限があります:
無効なコード:
非同期メソッドを呼び出して非実行タスク
最良の解決策:
最良の解決策には、長時間実行タスクの非同期バージョンを使用し、Task.WhenAll() メソッドを活用することが含まれます。例は次のとおりです:
<code class="language-csharp">async Task<int> LongTask1() { // ...长时间运行的任务1... return 0; } async Task<int> LongTask2() { // ...长时间运行的任务2... return 1; } // ... { Task<int> t1 = LongTask1(); Task<int> t2 = LongTask2(); await Task.WhenAll(t1,t2); //现在我们可以访问t1.Result和t2.Result }</code>
このコードは、LongTask1 と LongTask2 の非同期タスクを作成し、Task.WhenAll() を使用してそれらが完了するのを待ちます。これにより、タスクをブロックせずに同時に実行できます。最後に、t1.Result と t2.Result を使用して結果にアクセスできます。
以上が.NET 4.5 で並列非同期タスクを効率的に実行して結果を収集するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。