Task<T>
を返す非同期メソッドに事後条件を追加するための推奨方法は何ですか?私は、次の提案を読んでいるコード契約と非同期
:
http://social.msdn.microsoft.com/Forums/hu-HU/async/thread/52fc521c-473e-4bb2-a666-6c97a4dd3a39
をポストは、同期各方法を実施することを収縮し、次いで単純なラッパーとして非同期対応を実現示唆する。 syncメソッドのラッパーであると考えますが、任意の実際のコードの契約なしで残し、それゆえすることができますされ、非同期メソッド
- :残念ながら、私は(おそらく私自身の誤解を介して)実行可能な解決策としてこれを見ていませんそれは望む通りです。
- 非同期にコミットされたコードベースは、すべてのものに対して同期の相手を実装することはほとんどありません。その結果、他の非同期メソッドに
await
を含む新しいメソッドを実装すると、結果として非同期になります。これらのメソッドは、本質的に非同期であり、簡単に同期に変換することはできません。彼らは単にラッパーではありません。我々は.Result
または.Wait()
代わりawait
の使用することができますと言って、後者の点を無効(実際には、いくつかのSyncContext
sがデッドロックを引き起こすことになる、ととにかく非同期方式で再書かなければならない)場合でも
、私はまだ最初の点について確信しています。
代替案がありますか、コード契約やTPLについて私が見逃していることはありますか?
誰もMVPのは、それが間違って取得することはできません言いませんでした。 –