我的程序有3个功能.每个函数都会获取一个项目列表并填充某些信息.例如
class Item {
String sku,upc,competitorName;
double price;
}
Run Code Online (Sandbox Code Playgroud)
函数F1采用List并填充upc
功能F2取List(F1的输出)并填写价格.
功能F3取List(输出F2)并填充competitorName
F1可以一次处理5个项目, F2可以一次处理20个项目,F3也可以处理20个项目 .
现在我正在连续运行F1 - > F2 - > F3,因为F2需要来自F1的信息(UPC代码).F3需要F2的价格.
我想通过连续运行F1运行而不是等待F2和F3完成来使这个过程高效.F1执行并输出到队列中,然后F2一次取20个项目并处理它们.然后跟随F3.
如何通过使用BlockingCollection和Queue来实现这一目标?
我有一个特定的问题,我相信可以使用TPL数据流解决.我对此很陌生,所以需要你的帮助来加快我的理解.我的代码目前是这样的:
其中Process1,Process2,Process3均为Task.对象通过阻塞集合从一个块传递到另一个块.我想这样做:
我读到了TransformBlock,ActionBlock和BatchBlock ..您可以帮助我如何使用这些类来实现上述设计.