110,533
社区成员
发帖
与我相关
我的任务
分享
public override IList<IEnumerator<string>> GetPartitions(int partitionCount)
{
var m1 = print();
var result = new List<IEnumerator<string>>(m1); //添加2个分区
var t1 = CreateEnumerator1(true);
var t2 = CreateEnumerator1(false);
result.Add(t1); //添加偶数
result.Add(t2); //添加奇数
return result;
}
private IEnumerator<string> CreateEnumerator1(bool isEven) //将长度奇偶数分开
{
//var result = new List<string>();
foreach (var d in _data)
{
if (!(d.Length%2 == 0 ^ isEven))
yield return d;
//result.Add(d);
}
//return result.GetEnumerator();
}
static void Main(string[] args)
{
var partitioner = new StringPartitioner(GetTypes());
//var result = partitioner.GetPartitions(2);
var parallelQuery = from t in partitioner.AsParallel() select EmulateProcessing(t);
parallelQuery.ForAll(PrintInfo);
}
这边使用ForAll会出现一个异常,没有返回正确的分区数,分区器是设置成静态的。