与MatchCollection的Parallel.ForEach

时间:2013-05-13 18:06:43

标签: c# parallel-processing parallel.foreach

首先,我知道这是this question的副本,但是我无法在那里找到适合我的解决方案。我理解MatchCollection没有实现IEnumerable Parallel.ForEach使用,因而需要OfType()......任何想法我做错了什么?这是我的设置:

MatchCollection startMatches = Regex.Matches(tempRTB.Text, startPattern);

System.Threading.Tasks.Parallel.ForEach(startMatches.OfType<Match>, m =>
{
    // do stuff with m
});

这是我得到的编译错误:

Error   11  The type arguments for method 'System.Threading.Tasks.Parallel.ForEach<TSource>(System.Collections.Generic.IEnumerable<TSource>, System.Action<TSource>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

1 个答案:

答案 0 :(得分:4)

您缺少的是()(OfType是一种静态扩展方法)

System.Threading.Tasks.Parallel.ForEach(startMatches.OfType<Match>(), m =>
        {
            // do stuff with m
        });