public async Task Run(Action <UserIterationResult> iterationResult) { var nextTest = GetNextTest(++Iteration); var userSpecificClient = _loadTestHttpClient.GetClientForUser(); var task = ExecuteTest(nextTest, userSpecificClient); await task.ContinueWith((task1, o) => { iterationResult(task.Result); userSpecificClient.Dispose(); return(Run(iterationResult)); }, null, _cancellationToken.Token); }
public async Task Run(Func <TimeSpan> getCurrentTimeSpan, Action <UserIterationResult> iterationResult) { // Stop Executing if (_cancellationToken.IsCancellationRequested) { return; } var nextTest = GetNextTest(++Iteration); var userSpecificClient = _loadTestHttpClient.GetClientForUser(getCurrentTimeSpan); var task = ExecuteTest(nextTest, userSpecificClient, getCurrentTimeSpan); await task.ContinueWith((task1, o) => { iterationResult(task.Result); userSpecificClient.Dispose(); return(Run(getCurrentTimeSpan, iterationResult)); }, null, _cancellationToken.Token); }