public void Evaluate(int spreadMax) { FResponseOut.SliceCount = spreadMax; FFailOut.SliceCount = spreadMax; FSuccessOut.SliceCount = spreadMax; FStatusCodeOut.SliceCount = spreadMax; FActiveOut.SliceCount = spreadMax; FElaspeTimeOut.SliceCount = spreadMax; #region Make a async request if (FSendRequestIn.IsChanged) { for (int i = 0; i < spreadMax; i++) { if (FSendRequestIn[i]) { if (FThreadList.ContainsKey(i)) { BackgroundWorker worker; RequestState requestStateDelete; FThreadList.TryGetValue(i, out worker); FRequestStateList.TryGetValue(i, out requestStateDelete); if (requestStateDelete != null) { requestStateDelete.Request.Abort(); requestStateDelete.ManualResetEvent.Set(); } if (worker != null) { worker.CancelAsync(); } FThreadList.Remove(i); FRequestStateList.Remove(i); } RequestState requestState; using (var worker = new BackgroundWorker()) { worker.DoWork += HandlerDoWork; worker.RunWorkerCompleted += HandlerRunWorkerCompleted; worker.WorkerSupportsCancellation = true; requestState = new RequestState { Accept = FAcceptIn[i], Content = FContentIn[i], RequestMethod = FRequestMethodIn[i], ContentType = FContentTypeIn[i], Url = FUrlIn[i], Timeout = FTimoutIn[i], SliceId = i }; var headers = FHeaderIn[i]; var headersValues = FHeaderValueIn[i]; for (int j = 0; j < headers.SliceCount; j++) { requestState.Headers.Add(headers[i], headersValues[i]); } worker.RunWorkerAsync(requestState); FActiveOut[i] = true; FThreadList.Add(i, worker); } FRequestStateList.Add(i, requestState); } } } #endregion for (int i = 0; i < spreadMax; i++) { FSuccessOut[i] = false; FFailOut[i] = false; } }
public void Evaluate(int spreadMax) { FResponseOut.SliceCount = spreadMax; FFailOut.SliceCount = spreadMax; FSuccessOut.SliceCount = spreadMax; FStatusCodeOut.SliceCount = spreadMax; FActiveOut.SliceCount = spreadMax; FElaspeTimeOut.SliceCount = spreadMax; #region Make a async request if (FSendRequestIn.IsChanged) { for (int i = 0; i < spreadMax; i++) { if (FSendRequestIn[i]) { if (FThreadList.ContainsKey(i)) { BackgroundWorker worker; RequestState requestStateDelete; FThreadList.TryGetValue(i, out worker); FRequestStateList.TryGetValue(i, out requestStateDelete); if (requestStateDelete != null) { requestStateDelete.Request.Abort(); requestStateDelete.ManualResetEvent.Set(); } if (worker != null) worker.CancelAsync(); FThreadList.Remove(i); FRequestStateList.Remove(i); } RequestState requestState; using (var worker = new BackgroundWorker()) { worker.DoWork += HandlerDoWork; worker.RunWorkerCompleted += HandlerRunWorkerCompleted; worker.WorkerSupportsCancellation = true; requestState = new RequestState { Accept = FAcceptIn[i], Content = FContentIn[i], RequestMethod = FRequestMethodIn[i], ContentType = FContentTypeIn[i], Url = FUrlIn[i], Timeout = FTimoutIn[i], SliceId = i }; var headers = FHeaderIn[i]; var headersValues = FHeaderValueIn[i]; for (int j = 0; j < headers.SliceCount; j++) { requestState.Headers.Add(headers[i], headersValues[i]); } worker.RunWorkerAsync(requestState); FActiveOut[i] = true; FThreadList.Add(i, worker); } FRequestStateList.Add(i, requestState); } } } #endregion for (int i = 0; i < spreadMax; i++) { FSuccessOut[i] = false; FFailOut[i] = false; } }