C# 在AsParallel中更好地控制线程何时启动
下面的代码将在单独的线程中运行ChanceOfWinningMillionDollarJackpot,这非常酷。但是,这些线程会立即开始工作,而使用常规的C#Thread类,您可以使用Thread.start方法控制工作何时开始。在使用AsParallel设置并行查询时,是否仍然可以获得相同的控制C# 在AsParallel中更好地控制线程何时启动,c#,.net,multithreading,task,plinq,C#,.net,Multithreading,Task,Plinq,下面的代码将在单独的线程中运行ChanceOfWinningMillionDollarJackpot,这非常酷。但是,这些线程会立即开始工作,而使用常规的C#Thread类,您可以使用Thread.start方法控制工作何时开始。在使用AsParallel设置并行查询时,是否仍然可以获得相同的控制 static void Main(string[] args) { Task<double>[] e = Enumerable.Range(1, 10).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
}
static void Main(字符串[]args)
{
Task[]e=Enumerable.Range(1,10).AsParallel().Select(n=>ChanceOfWinningMillionDollarJackpot(n)).ToArray();
}
私有静态任务机会赢百万美元头奖(整数n)
{
//随便
}
您需要将列表作为IEnumerable返回。然后,只有在查询可枚举项时,代码才会实际执行
var enumerable = Enumerable.Range(1, 10).AsParallel()
.Select(n => ChanceOfWinningMillionDollarJackpot(n)).AsEnumerable();
var list = enumerable.ToList();