【发布时间】:2017-08-19 04:54:30
【问题描述】:
我需要帮助以更好地安排 .NET TPL 数据流中的代码。这是代码
var finalBlock = new ActionBlock<Category_KeywordsToMatch>(x =>
{
List<Resume> Resumes = new List<Resume>();
using (var context = new IndepthRecruitDbContext())
{
Resumes = context.Resumes.Include("Candidate").ToList();
}
foreach (var res in Resumes)
{
var keywords = FindKeywords(x.KeywordsToMatch, res);
if (keywords.Count > 0)
{
matchedCandidates_dataflow.Add(new MatchedCandidate
{
Id = res.CandidateId,
Name = res.Candidate.Name,
Url = res.Url,
Uploaded = res.DateUploaded.ToShortDateString(),
MatchedKeywordsList = keywords
});
}
}
});
这是我链的最后一个区块。这里的动作块输入是 Category_KeywordsToMatch,它是一个包含工作类别和要在简历中匹配的关键字列表的类。 {类别,列出}。在块内部,我使用 foreach 循环来枚举简历列表。 有没有使用数据流更好的设计,比如简历可以作为不同的输入提供。 最终块是一个类别的最后一个块。我需要搜索多个类别的关键字。
【问题讨论】:
-
如果你的
Resumes没有改变,你可以做WriteOnceBlock,或者你可以试试BroadcastBlock,它接受委托复制值。 -
感谢您的回复。我想知道我可以将这个最后一个块分成一些块链。我是 tpl 数据流的初学者,没有太多相同的教程。简历不变。我正在考虑将简历和 Category_KeywordsToMatch 的元组提供给其他块,然后在其他块中制作最终结果。 @VMAtm 能否请您给我您的 Skype 或任何其他 ID,以便我与您联系。
标签: .net tpl-dataflow