これは、私たちのasync
メソッドであり、タスクで長時間実行されます。.NETに関してタスクが終了するのを待つ最善の方法は何ですか?
public async Task<int> LongRunningMethod(T p1, T p2, T p3);
私のチームでは一部の開発者は、いくつか使用していますが
await LongRunningMethod(p1,p2,p3);
// Here too, we simply 'await' till the method finishes.
注意を
Task t = Task.Factory.StartNew(LongRunningMethod(p1,p2,p3));
t.Wait(); //This will suspend main thread and wait for 't' to finish.
を使用します。私たちは、非同期タスクを持って、我々は、そのタスクが完了しますまで待ちたいです。
要するに、上記の2つの構成のうち、どちらが最適ですか?
「最高」を定義してください。 –
なぜ非同期的に待機しないのですか? * await *)を実行してタスクを完了しますか?また、ネストされたタスクの問題(例えば、ここでは 'Task'または 'Task ')を実行するため、Task.Factory.StartNewを使用することは正しいでしょう。あなたがそれを使用しない魅力的な理由がある場合(StartNewで既に動作する既存のレガシーコードのような)、Task.Runを優先します。 –
これは 'Task'であり、' Thread'ではありません。そして、いいえ、必ずしも同じものではありません。相違点については[こちら](https://stackoverflow.com/questions/4130194/what-is-the-difference-between-task-and-thread)、[こちら](https://stackoverflow.com/)を参照してください。質問/ 37419572/if-async-await-doesnt-create-any-additional-threads-then-how-make-appl-appl)を使用します。 – john