次のタスクを完了する必要があります。
私のプログラムには、データベース クエリまたは質問のブロックがあります。これらの質問を実行して、すべての質問の結果を待つか、1 つの質問が失敗した場合にエラーをキャッチしたい!
私の質問オブジェクトは次のようになります(簡略化):
public class DbQuestion(String sql)
{
[...]
}
[...]
//The answer is just a holder for custom data...
public void SetAnswer(DbAnswer answer)
{
//Store the answer in the question and fire a event to the listeners
this.OnAnswered(EventArgs.Empty);
}
[...]
public void SetError()
{
//Signal an Error in this query!
this.OnError(EventArgs.Empty);
}
したがって、データベースに対して発行されるすべての質問には、解析結果を待機するリスナーがあります。
ここで、データベースに対して非同期でいくつかの質問を起動し (最大 5 つ程度)、すべての質問のデータを使用してイベントを起動するか、1 つの質問だけが 1 つをスローした場合はエラーを発生させたいと考えています。
このタスクを達成するための最良または適切な方法はどれですか? 複数の質問を並行して実行し、1 つの質問でエラーがスローされたときにすべての作業を停止できるでしょうか?
これについては、何らかのインスピレーションが必要だと思います...
注意: 私は .NET Framework 2.0 を使用しています。