title: task.Wait causing a long pause in my GUI thread
body: <p>I have this code:</p>
  
  <pre><code>        public async Task&lt;string&gt; Solve(List&lt;List&lt;Node&gt;&gt; nodeList)
      {
          List&lt;Task&gt; taskList = new List&lt;Task&gt;();
  
          for (int i = 0; i &lt; nodeList.Count(); i++)
          {
              int taskNo = i;
              Task&lt;List&lt;Node&gt;&gt; task = Task.Factory.StartNew((x) =&gt;
              {
                  List&lt;Node&gt; nodes = new List&lt;Node&gt;(nodeList[i]);
                  Calculate(nodes);
                  return nodes;
              }, taskNo);
  
              task.Wait();
              taskList.Add(task);
  
          }
  
          Task&lt;string&gt; r = BuildReport(taskList);
  
          return r;
      }
  </code></pre>
  
  <p>This method is being called by another method on my UI thread.
  This method causes my UI thread to pause and makes the window unresponsive for 20-50 seconds.  I have a feeling the task.Wait is causing this pause.  How could I modify this method so that this won't happen.  If I do not have the task.Wait the taskList doesn't get the proper tasks in it.</p>
  
  <p>Thanks.</p>