我正在处理一些相当基础的TPL代码,遇到了一个情况,我想知道以下两个片段是否等效:
myEnumerable.AsParallel().Select(e =>
{
//do some work that takes awhile
return new Thing(e);
}
myEnumerable.Select(e =>
{
//do some work that takes awhile
return new Thing(e);
}.AsParallel()
此外,如果它们确实是等效的,它们的等效性是否可以随着IEnumerable扩展方法的TPL接口定义而更改?还是当我更新到.NET V{任何版本}时,我只是在设置自己的代码错误?
背景是,myEnumerable是我尚未枚举(使数据库往返)的EF表(实体)。
我希望的行为是同步进行DB调用,获得一个List返回,并并行操作List(在List中进行一堆Web服务调用)。