私はピークパフォーマンス要件を持つプロジェクトに取り組んでいるので、効率のために複数の操作 (データベースへのデータの永続化など) を一括 (バッチ?) する必要があります。
ただし、次のようなわかりやすいフローをコードで維持したいと考えています。
input = Read();
parsed = Parse(input);
if (parsed.Count > 10)
{
status = Persist(parsed);
ReportSuccess(status);
return;
}
ReportFailure();
ここで私が探している機能は、自動的に Persist() が一括で発生するようにすることです (つまり、非同期に) が、ユーザーに対しては同期であるかのように動作します (一括アクションが完了するまで、ユーザーはブロックする必要があります)。実装者が Persist(ICollection) を実装できるようにしてほしい。
あまりよく知らないフローベースのプログラミングについて調べました。ここで C# の fbp 用のライブラリを 1 つ見て、Microsoft の Workflow Foundation で少し遊んでみましたが、私の印象では、どちらも私が必要としているものにはやり過ぎです。一括フロー動作を実装するには何を使用しますか?
私が書いたものとまったく同じコードを取得したい(理解しやすくデバッグしやすい)ので、フローを相互に接続するために収量または構成を含むソリューションは、私の目的には不十分であることに注意してください。また、チェーン は私が探しているものではありません。最初にチェーンを構築してから実行したくはありません。単純なフローのように見えるコードが必要です (「A を実行し、B を実行し、C の場合は B を実行します。 D」を行います)。