Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在AsParallel中更好地控制线程何时启动_C#_.net_Multithreading_Task_Plinq - Fatal编程技术网

C# 在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()

下面的代码将在单独的线程中运行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
}
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();