下面的代码将在单独的线程中运行 ChanceOfWinningMillionDollarJackpot ,这非常酷。但是,这些线程立即开始工作,而使用常规的C#Thread类,您可以控制何时开始使用Thread.Start方法。无论如何,在使用AsParallel设置并行查询时,我可以得到相同的控制吗?
static void Main(string[] args)
{
Task<double>[] e = Enumerable.Range(1, 10).AsParallel().Select(n => ChanceOfWinningMillionDollarJackpot(n)).ToArray();
}
private static Task<double> ChanceOfWinningMillionDollarJackpot(int n)
{
//whatever
}
答案 0 :(得分:1)
您需要将列表作为IEnumerable返回。然后,只有在查询可枚举时,代码才会实际执行。
var enumerable = Enumerable.Range(1, 10).AsParallel()
.Select(n => ChanceOfWinningMillionDollarJackpot(n)).AsEnumerable();
var list = enumerable.ToList();