C# 方法';x';无法使用Parallel.ForEach从用法推断

C# 方法';x';无法使用Parallel.ForEach从用法推断,c#,task,C#,Task,我第一次尝试了“where T:”构造,在尝试使用Parallel.ForEach时遇到了一个错误 无法从用法推断方法“System.Threading.Tasks.Parallel.ForEach(System.Collections.Concurrent.OrderablePartitioner,System.Action)”的类型参数 我理解错误发生的原因,但不知道如何修复它。Data是一个只有2个属性的简单类 namespace Test { internal class UnOrd

我第一次尝试了“where T:”构造,在尝试使用Parallel.ForEach时遇到了一个错误

无法从用法推断方法“System.Threading.Tasks.Parallel.ForEach(System.Collections.Concurrent.OrderablePartitioner,System.Action)”的类型参数

我理解错误发生的原因,但不知道如何修复它。Data是一个只有2个属性的简单类

namespace Test
{
  internal class UnOrderedBuffer<T> where T : class
    {

        ConcurrentBag<T> GenericBag = new ConcurrentBag<T>();
    }
}


namespace Test
{
    internal class Tester
    {

     private UnOrderedBuffer<Data> TestBuffer;


     public void Update()
    {

    Parallel.ForEach(TestBuffer, Item =>
            {
                //do stuff
            });
    }

    }
}
名称空间测试
{
内部类无序缓冲区,其中T:class
{
ConcurrentBag GenericBag=新ConcurrentBag();
}
}
名称空间测试
{
内部类测试器
{
私有无序缓冲区TestBuffer;
公共无效更新()
{
Parallel.ForEach(TestBuffer,Item=>
{
//做事
});
}
}
}
的第一个参数应该是
IEnumerable
分区器或类似的东西。您的
UnOrderedBuffer
类不能转换为涉及的任何参数类型。如果您让它实现
IEnumerable
或类似的东西,那么它就会工作

这实际上与类型参数或泛型约束无关,而是与您的类没有实现正确的接口或扩展适当的类有关