0

次のタスクを完了する必要があります。

私のプログラムには、データベース クエリまたは質問のブロックがあります。これらの質問を実行して、すべての質問の結果を待つか、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 を使用しています。

4

1 に答える 1

0

トランザクションを調べます。データベースへの呼び出しを 1 つのトランザクションにラップし、最後にコミットするか、失敗時にロールバックします。

于 2012-11-28T13:42:38.473 に答える