public async Task EasyCalculation() { AvailableRides = new BlockingCollection <Ride>(); Rides.ForEach(x => AvailableRides.Add(x)); InitVehicles(); List <Task> taskList = new List <Task>(); int idealRange = VehiclesCount / 10; // ToDo for (int i = 0; i < Vehicles.Count; i++) { if (idealRange + i > VehiclesCount) { idealRange = VehiclesCount - i; } var vehicleSeperation = Vehicles.GetRange(i, idealRange); i += idealRange; taskList.Add(Task.Factory.StartNew(() => { for (int j = 0; i < vehicleSeperation.Count && FindBestRides(vehicleSeperation[j]); j++) { if (j == VehiclesCount - 1) { j = 0; } } })); } await Task.WhenAll(taskList); //for(int i = 0; i < VehiclesCount && FindBestRides(Vehicles[i]); i++) //{ // if(i == VehiclesCount -1) // { // i = 0; // } //} }
public void RemoveAllRides() { Rides.ForEach(x => x.IsSoftDeleted = true); }