public ICar GetCar(CarMakeEnum make, string color) { List <Task <ICar> > tasks = new List <Task <ICar> >(); foreach (var kvp in carRepo) { tasks.Add(Task <ICar> .Factory.StartNew(() => CarCompare(kvp.Value, Car.GetCarIdentity(make, color)))); } Task.WaitAll(tasks.ToArray()); foreach (var taskResult in tasks) { if (taskResult.Result != null) { return(taskResult.Result); } } var car = new Car(make, color); carRepo.Add(car.IntrinsicIdentifier, car); return(car); }
public static string GetCarIdentity(CarMakeEnum make, string color) { return($"{make.ToString()}{color}"); }
public Car(CarMakeEnum make, string color) { CarMake = make; Color = color; }