2015-01-04 33 views
1

下面的代碼將運行ChanceOfWinningMillionDollarJackpot在單獨的線程,這是非常酷。但是,這些線程立即開始工作,而使用常規的C#Thread類,您可以控制何時開始使用Thread.Start方法的工作。無論如何,當使用AsParallel設置並行查詢時,我可以得到相同的控制權?在線程啓動時獲得更好的控制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 
} 

回答

1

您需要將列表作爲IEnumerable返回。然後,只有當你查詢可執行代碼時,代碼纔會真正執行。

var enumerable = Enumerable.Range(1, 10).AsParallel() 
    .Select(n => ChanceOfWinningMillionDollarJackpot(n)).AsEnumerable(); 

var list = enumerable.ToList(); 
相關問題