最初から WinForms クライアントで非同期操作を使用していますが、一部の操作のみです。ExecuteReader
または が完了するExecuteNonQuery
と、コールバック デリゲートが起動し、すべてが正常に機能します。
私は基本的に2つの問題を抱えています:
1) 実際のシステムでこれを処理するための最良の構造は何ですか? 私が見たすべての例は、フォームが操作の完了を処理し、EndExecuteReader
. もちろん、これは、フォームが通常よりもデータベースに緊密に結合されていることを意味します。そしてもちろん、フォームはいつでも簡単.Invoke
にそれ自体を呼び出すことができます。すべての非同期オブジェクトをAsyncCtrlBlock<T>
クラスから継承するように設定し、フォームとすべてのコールバック デリゲートを DAL の非同期オブジェクトのコンストラクターに提供しました。
2) 現在非同期ではないプログラムの一部に再度アクセスします。2 つの呼び出しを連続して行います。最初のモデルが完成したら、モデルの一部を設定できます。2 番目の部分が完成したら、モデルの残りの部分を完成させることができますが、最初の部分がすでに完成している場合に限られます。これを構造化する最良の方法は何ですか?1回目の読み込みができて、1回目の読み込みによる処理が2回目の起動中に進行していればいいのですが、最初の読み取りデータが完了しました。