Stoper w zadaniu wydaje się być addytywny we wszystkich zadaniach, chce mierzyć tylko interwał zadania

Pracuję w pętli i rozpoczynam zadania w następujący sposób:

var iResult = new List<Task>();
foreach(var i in myCollection)
{
    var task = Task.Factory.StartNew(() =>
                    DoSomething(), TaskCreationOptions.LongRunning);
    task.ContinueWith(m => myResponseHandler(m.Result));
    iResult.Add(task);
}

W moimDoSomething() metoda, mam timer:

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);
}

Kiedy przeglądam moją listęmyMsgWydaje się, że ElaspedMilliseconds są całkowicie addytywne - ElaspedMilliseconds na pierwszym mogą mieć wartość 300, ale ostatnia może wynosić 50000 (50 sekund) - co w rzeczywistości jest przybliżonym czasem, jaki zajmuje cała rzecz do uruchomienia (mierzona przez inny zegar ).

questionAnswers(2)

yourAnswerToTheQuestion