public async void NextTikker() { string oldTick = Forward.StockName; Back = Current; Current = Forward; Forward = null; await Task.Run(() => { YahooApiInterface F = new YahooApiInterface(); List <Stock> G = new List <Stock>(); int i = Tickers.IndexOf(oldTick) + 1; if (i == Tickers.Count) { i = 0; } G = F.getYahooData(new List <string>() { Tickers[i] }, new DateTime(2013, 01, 01)); while (G[0].WeeklyHist == null || G[0].HourlyHist == null || G[0].DailyHist == null || G[0].MonthlyHist == null) { i = Tickers.IndexOf(G[0].StockName); Tickers.Remove(G[0].StockName); if (i == Tickers.Count) { i = 0; } G = new List <Stock>(); G.AddRange(F.getYahooData(new List <string>() { Tickers[i] }, new DateTime(2013, 01, 01))); } Forward = G[0]; }); }