Boa*_*ler 1 .net c# task-parallel-library tpl-dataflow
鉴于:
电子邮件ID列表
我在做什么:
使用BatchBlock组ID并为每个块调用Transformblock,简化的transformblock如下所示:
var readBatch = new TransformBlock<List<int>, IEnumerable<Email>>(idList =>
{
List<Email> mails = new List<Email>();
foreach(var id in idList)
{
mails.Add(new Email(id));
}
return mails;
});
Run Code Online (Sandbox Code Playgroud)
现在我的下一个TransformBlock定义如下
TransformBlock<Email,EMail> filterStep;
Run Code Online (Sandbox Code Playgroud)
我搜索的内容:所以我需要一个块,它允许我将一个集合作为源并返回N-Elements作为结果.因此,在这种情况下,一个块接收一个IEnumerable<Email>并Email在枚举中返回foreach条目.
所以我搜索的是BatchBlock的反面但我找不到它.我忽略了什么吗?
你需要的块是TransformManyBlock.您IEnumerable<Email>从块的func 返回一个,它会自动单独传输每个项目:
var transformManyBlock = new TransformManyBlock<IEnumerable<Email>, Email>(emails => emails);
Run Code Online (Sandbox Code Playgroud)