title: Stopwatch in a Task seems to be additive across all tasks, want to measure just task interval
body: <p>I'm running in a loop and kicking off tasks in the following manner:</p>
  
  <pre><code>var iResult = new List&lt;Task&gt;();
  foreach(var i in myCollection)
  {
      var task = Task.Factory.StartNew(() =&gt;
                      DoSomething(), TaskCreationOptions.LongRunning);
      task.ContinueWith(m =&gt; myResponseHandler(m.Result));
      iResult.Add(task);
  }
  </code></pre>
  
  <p>Within my <code>DoSomething()</code> method, I have a timer:</p>
  
  <pre><code>public static myMsg DoSomething()
  {
      var timer = System.Diagnostics.Stopwatch.StartNew();
      DoLongRunningTask(); //If it matters this hits a REST endpoint (https)
      timer.Stop();
  
      return new myMsg(timer.ElaspedMilliseconds);
  }
  </code></pre>
  
  <p>When I iterate through my list of <code>myMsg</code>'s the ElaspedMilliseconds seems to be completely additive - the ElaspedMilliseconds on the first one might be 300, but the last one could be 50000 (50 seconds) - which is actually the approximate time the entire thing takes to run (as measured by another timer).</p>