0
我從一些文件中解析了很多單詞(百萬),並通過語言對它們進行了計數。我使用PLINQ是因爲性能,但我認爲(通過觀察任務管理器),整個過程將順序進行。可能被我的聚合函數阻塞。從ParallelQuery彙總自定義數據
這可能嗎?
這裏被牽連PLINQ
ParallelQuery<string> query = Directory.EnumerateFiles(test, "*.d", SearchOption.AllDirectories).AsParallel();
query = query.SelectMany(parseStrings).Where(isValidPhrase);
query = query.SelectMany(s => Regex.Matches(s, @"\w+").Cast<Match>().Select(match => match.Value));
Result output = query.Aggregate(new Result(), (result, word) =>
{
if (word.All(russianAlfabet.Contains))
result.Ru++;
else if (czechWords.Contains(word))
result.Cs++;
else
result.Other++;
return result;
});
...這是一類聚合結果
class Result {
public int Ru { get; set; }
public int Cs { get; set; }
public int Other { get; set; }
}
謝謝,幫助! :-) –