public void StartDurationTest() { CancellationTokenSourceDurationTest = new CancellationTokenSource(); Task.Factory.StartNew(() => { while (true) { var tasksToDispose = _tasks.Where(task => task.IsCompleted); foreach (var task in tasksToDispose) { task.Dispose(); _tasks.Remove(task); } if (CancellationTokenSourceDurationTest.Token.IsCancellationRequested) { CancellationTokenSourceDurationTest.Token.ThrowIfCancellationRequested(); } } }, CancellationTokenSourceDurationTest.Token); Task.Factory.StartNew(() => { var mangerUriBuilder = new ManagerUriBuilder(); var addToJobQueueUri = mangerUriBuilder.GetAddToJobQueueUri(); var httpSender = new HttpSender(); Random random = new Random(); for (int i = 0; i < NumberOfMessages; i++) { if (CancellationTokenSourceDurationTest.Token.IsCancellationRequested) { CancellationTokenSourceDurationTest.Token.ThrowIfCancellationRequested(); } var i1 = i; var randomTimeSpan = random.Next(MessageDurationFrom, MessageDurationTo); _tasks.Add(new Task <HttpResponseMessage>(() => { var testJobTimerParams = new TestJobParams("Test job name " + i1, randomTimeSpan); var jobParamsToJson = JsonConvert.SerializeObject(testJobTimerParams); var jobQueueItem = new JobQueueItem { Name = "Job Name " + i1, Serialized = jobParamsToJson, Type = "NodeTest.JobHandlers.TestJobParams", CreatedBy = "WPF Client" }; return(httpSender.PostAsync(addToJobQueueUri, jobQueueItem).Result); }, CancellationTokenSourceDurationTest.Token)); } var sendJobEveryDurationTimer = new SendJobEveryDurationTimer <HttpResponseMessage>(_tasks, TimeSpan.FromSeconds(5), ProgressAction); CheckManagerDbTimer.Start(); sendJobEveryDurationTimer.SendTimer.Start(); }); }
public void StartDurationTest() { CancellationTokenSourceDurationTest = new CancellationTokenSource(); Task.Factory.StartNew(() => { while (true) { var tasksToDispose = _tasks.Where(task => task.IsCompleted); foreach (var task in tasksToDispose) { task.Dispose(); _tasks.Remove(task); } if (CancellationTokenSourceDurationTest.Token.IsCancellationRequested) { CancellationTokenSourceDurationTest.Token.ThrowIfCancellationRequested(); } } }, CancellationTokenSourceDurationTest.Token); Task.Factory.StartNew(() => { var mangerUriBuilder = new ManagerUriBuilder(); var addToJobQueueUri = mangerUriBuilder.GetAddToJobQueueUri(); var httpSender = new HttpSender(); Random random = new Random(); for (int i = 0; i < NumberOfMessages; i++) { if (CancellationTokenSourceDurationTest.Token.IsCancellationRequested) { CancellationTokenSourceDurationTest.Token.ThrowIfCancellationRequested(); } var i1 = i; var randomTimeSpan = random.Next(MessageDurationFrom, MessageDurationTo); _tasks.Add(new Task<HttpResponseMessage>(() => { var testJobTimerParams = new TestJobParams("Test job name " + i1, TimeSpan.FromSeconds(randomTimeSpan)); var jobParamsToJson = JsonConvert.SerializeObject(testJobTimerParams); var jobQueueItem = new JobQueueItem { Name = "Job Name " + i1, Serialized = jobParamsToJson, Type = "NodeTest.JobHandlers.TestJobParams", CreatedBy = "WPF Client" }; return httpSender.PostAsync(addToJobQueueUri, jobQueueItem).Result; }, CancellationTokenSourceDurationTest.Token)); } var sendJobEveryDurationTimer= new SendJobEveryDurationTimer<HttpResponseMessage>(_tasks, TimeSpan.FromSeconds(5), ProgressAction); CheckManagerDbTimer.Start(); sendJobEveryDurationTimer.SendTimer.Start(); }); }