title: Can I limit the amount of System.Threading.Tasks.Task objects that run simultaneously?
body: <p>I am using Task classes to do multi-threaded computation.</p>
  
  <p>For example: </p>
  
  <pre><code>   List&lt;Task&gt; taskList = new List&lt;Task&gt;();
     for(int i=0;i&lt;10;i++){
          var task = new Task(() =&gt; Console.WriteLine("Hello from taskA."));
          taskList.Add(task);
          task.Start();
      }
  </code></pre>
  
  <p>Is there a way to make only, let's say, 3 tasks to run at most, and the rest to wait?</p>