C# 方法';x';无法使用Parallel.ForEach从用法推断
我第一次尝试了“where T:”构造,在尝试使用Parallel.ForEach时遇到了一个错误 无法从用法推断方法“System.Threading.Tasks.Parallel.ForEach(System.Collections.Concurrent.OrderablePartitioner,System.Action)”的类型参数 我理解错误发生的原因,但不知道如何修复它。Data是一个只有2个属性的简单类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
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
或类似的东西,那么它就会工作
这实际上与类型参数或泛型约束无关,而是与您的类没有实现正确的接口或扩展适当的类有关