我正在处理一个具有 peek 性能要求的项目,因此我们需要批量(批处理?)几个操作(例如将数据持久化到数据库)以提高效率。
但是,我希望我们的代码保持易于理解的流程,例如:
input = Read();
parsed = Parse(input);
if (parsed.Count > 10)
{
status = Persist(parsed);
ReportSuccess(status);
return;
}
ReportFailure();
我在这里寻找的功能是自动让 Persist() 批量发生(并且异步进行),但对其用户的行为就好像它是同步的(用户应该阻止直到批量操作完成)。我希望实现者能够实现 Persist(ICollection)。
我研究了基于流的编程,对此我并不十分熟悉。我在这里看到了一个 C# 中的 fbp 库,并与 Microsoft 的 Workflow Foundation 进行了一些合作,但我的印象是两者都对我的需要来说太过分了。您将使用什么来实现批量流动行为?
请注意,我希望获得与我编写的代码完全相同的代码(易于理解和调试),因此涉及产量或配置以将流相互连接的解决方案不足以满足我的目的。此外,链接 不是我要寻找的 - 我不想先构建一个链然后运行它,我想要看起来好像它是一个简单流程的代码(“Do A, Do B, if C then做 D")。