より少ないパラメータで)とawait
を使用しますか?私はすべきではないと思いますが、もし私がそれをするなら、何が起こるか教えていただけますか?私はここでかなり失われていて、実際に何が待っていたのでしょうかTask
Task
またはawait
を追加しても新しいTask
は作成されませんか?.NET 4.5非同期は、私は非同期メソッドを持って待っていますし、オーバーロードされたメソッド
20
A
答えて
20
は、既存のものをラップアンドラップしようとしているときに、非同期メソッドを使用することにはほとんどメリットがありません。実際の非同期メソッドに委譲するだけで、ここでは「通常の」メソッドを持つことができます。
(彼らはないよかなり同じ - UserService.LoginExAsync
メソッドが失敗したタスクを返すのではなく、例外をスローした場合、たとえば、非同期/のawaitバージョンはちょうど他のバージョンのに対し、失敗したタスクを返しますをうそれは内部的に何を待っていないとしても、すぐに投げる。)
1
過負荷がasync
としてマークする必要はありませんので、したがって、書き換えコンパイラは何もありません。
3
あなたの過負荷で追加作業を行っていた場合は、実際にはやるしかありません。
public async Task<UserLoginExResult> LoginExAsync(CustomTable exRequest, bool throwEx = true)
{
Task<UserLoginExResult> result = await LoginExAsync(exRequest, Language.ID, throwEx);
//Do some work here that depends on the result from the task completeion
return result;
}
しかし、あなたはそうではありません。
7
async
キーワードは、await
キーワードのみ有効にします。あなたの場合、Task
を直接返すことができるので、async
キーワードは必要ありません。 async
は、値を追加せずにオーバーヘッドを追加するだけです。
詳細については、Stephen Toub's Zen of Async talkを参照してください。彼はこの状況に直接言及します。
関連する問題
- 1. 非同期メソッドを待つ
- 2. 非同期ループ内の非同期メソッド
- 3. 残りのメソッドを非同期にするのを待っていますか?
- 4. 私はこれを持っている非同期親関数
- 5. void非同期メソッドを待つ
- 6. バベルは非同期ですが、待っていませんか?
- 7. 私はそうのような非同期メソッド本体をお持ちの場合は非同期メソッド本体
- 8. AngularJS:非同期呼び出しを待っています
- 9. JavaScriptで非同期呼び出しを待っています
- 10. 非同期mvc .net:非同期メソッドからビューを返す方法
- 11. 完了したイベントの非同期メソッド
- 12. 複数の非同期ダウンロードタスクを待っています
- 13. 非同期メソッドから非同期メソッドを呼び出す方法
- 14. RubyCocoaの非同期メソッド
- 15. Azure TableServiceContext - 非同期AddObjectメソッド?
- 16. のXmlWriter非同期メソッド
- 17. 非同期メソッドのコードカバレッジ
- 18. JavaScriptを:私は非常に同期している大規模なスクリプトを持って同期
- 19. 非同期の結果を待っているChromeシステムコール
- 20. 非同期結果を待っている
- 21. 部品番号は、非同期メソッドが
- 22. 非同期メソッドの作成方法は?
- 23. Files.ReadAllLinesを非同期化して結果を待っていますか?
- 24. 非同期メソッドを待つ必要がありますか?
- 25. 非同期に同期メソッドを呼び出す
- 26. 非同期メソッドによって呼び出されたとき、WinRTメトロアプリはUIスレッドをブロックします
- 27. JustMockを使ってEF 6非同期メソッドをモックする方法は?
- 28. BACKBONE.JS同期は、私は非常に簡単なセットアップを持っているモデル
- 29. 非同期メソッドを使用してXigniteを呼び出す
- 30. 別の非同期 `each`メソッド(NodeJS)の内部で非同期メソッド呼び出しを行う方法は?
しかし、追加に何か問題はありますか?オーバーヘッドのコストはいくらですか?または、コンパイラはそれを最適化しますか? –
@Matt:基本的に、簡単なステートマシンを設定するコストです。また、タスクの作成時にスローされる例外がどのように伝達されるかを変更するため、100%の同等のものではありません。しかし、コンパイラは間違いなく一方を他方に最適化しません。 –
ありがとうございます。あなたは私がそれを持っていなくても、議論を解決するのを手伝ってくれました。 :) –