protected override double computeNetAssetValue(IList <string> tickers) { double netAssetValue = 0.0; foreach (string ticker in tickers) { netAssetValue += 1000 * SinaFinanceHelper.GetCurrentStockPrice(ticker); } return(netAssetValue); }
protected override double computeNetAssetValue(IList <string> tickers) { TaskFactory factory = new TaskFactory(new LimitedConcurrencyLevelTaskScheduler(this.threadPoolSize)); var tasks = new List <Task <double> >(2000); foreach (var ticker in tickers) { tasks.Add(factory.StartNew( () => 1000 * SinaFinanceHelper.GetCurrentStockPrice(ticker))); } return(Task.WhenAll(tasks).Result.Sum()); }