title: Cannot convert from 'System.Threading.Tasks.Task' to 'System.Collections.Generic.Dictionary<string,string>'
body: <p>I believe I might just have the syntax wrong but what I'm trying to do is create a task that runs after another task is finished.</p>
  
  <p>I have a task for each array of 100 in a list. It starts a new thread passing that array into a method. The method returns a dictionary when it finishes. I'm trying to create a task to run after the method is finishes where it passes the returned dictionary to a separate method that does some more work. </p>
  
  <pre><code>static void Main(string[] args)
      {
          try
          {
              stopwatch = new Stopwatch();
              stopwatch.Start();
              while (true)
              {
                  startDownload();
              }
          }
          catch (Exception ex)
          {
              Console.WriteLine(ex.Message);
          }
      }
  
  public static async void startDownload()
      {
          try
          {
  
              DateTime currentDay = DateTime.Now;
  
              if (Helper.holidays.Contains(currentDay) == false)
              {
                  List&lt;string&gt; markets = new List&lt;string&gt;() { "amex", "global", "nasdaq", "nyse" };
  
                  Parallel.ForEach(markets, async market =&gt;
                  {
                      try
                      {
  
                          IEnumerable&lt;string&gt; symbolList = Helper.getStockSymbols(market);
                          var historicalGroups = symbolList.Select((x, i) =&gt; new { x, i })
                            .GroupBy(x =&gt; x.i / 100)
                            .Select(g =&gt; g.Select(x =&gt; x.x).ToArray());
  
                          Task&lt;Dictionary&lt;string, string&gt;&gt;[] historicalTasks =
                                                             historicalGroups.Select(x =&gt; Task.Run(() =&gt;
                                                             Downloads.getHistoricalStockData(x, market)))
                                                                      .ToArray();
  
                          Dictionary&lt;string, string&gt;[] historcalStockResults = await
                                                                               Task.WhenAll(historicalTasks);
  
                          foreach (var dictionary in historcalStockResults)
                          {
                              Downloads.updateSymbolsInDB(dictionary);
                          }
                      }
                      catch (Exception ex)
                      {
                          Console.WriteLine(ex.Message);
                      }
                  });
  
                  await Task.Delay(TimeSpan.FromHours(24));
              }
          }
          catch (Exception ex)
          {
              Console.WriteLine(ex.Message);
          }
      }
  </code></pre>