public async Task StartBruteForce(Stack <string> urls) { _urls = urls; List <Task> tasks = new List <Task>(); while (_urls.Count > 0) { tasks.Add(LowLevelHttpRequest.BrutForceAsync(_urls.Pop())); //Console.WriteLine(_urls.Count()); //непонятно зачем if (tasks.Count > _parralelCount) { await Task.WhenAny(tasks.ToArray()); tasks = CleanFinishTasks(tasks); } } if (tasks.Count > 0) { tasks = CleanFinishTasks(tasks); /*Task ok_optimization = */ await Task.WhenAll(tasks.ToArray()); //return true; //!!!!! пробуем возврат значений } //return false; //!!!!! пробуем возврат значений }
private void AddTasks(Task[] tasks) { for (var i = 0; i < tasks.Length; i++) { var currentTask = tasks[i]; if (currentTask == null || currentTask.IsCompleted || currentTask.IsFaulted || currentTask.IsCanceled) { tasks[i] = LowLevelHttpRequest.BrutForceAsync(_baseUrl + _urls.Pop()); } } }