私は単純なトランザクションを実装する必要がありました。その場合、私のトランザクションクラスはIDisposableインターフェイスを実装します。そうすれば、usingステートメント内でトランザクションクラスを使用することができ、そのスコープ内でエラーが発生した場合、トランザクションが破棄されるとすべてがロールバックされます。IDisposable.Dispose()内の非同期呼び出しを使用
using (var transaction = new Transaction())
{
// do some stuff
}
「いくつかのものをやる」も「いくつかのものをやる」いずれかのエラーが発生した場合今私は戻って、すべてをロールなど
をいくつかのクライアント/サーバ接続を含んでいます。
public async void Dispose(){ // roll back everything on error }
おそらく、私が非同期操作を呼び出す必要があるサーバー上のいくつかのリソースをクリーンアップすることが含まれます。それは私の質問につながります:asposeキーワードを使用して、その実装内でawaitキーワードを有効にするだけで、安全にasposeキーワードをDispose()実装に使用できますか?あるいは、これはおそらく同期コンテキストの問題などのために競合状態につながる可能性がありますか?
興味深い記事http://blog.stephencleary.com/2013/03/async-oop-6-disposal.html – Gusdor