public async Task RunAsync() { var users = new ReadOnlyCollection <User>(await userService.GetUsers()); var products = new ReadOnlyCollection <Product>(await productService.GetProducts()); var carriers = new ReadOnlyCollection <Carrier>(await carrierService.GetCarriers()); while (true) { await Task.Run(() => { Buy(users, products, carriers); }); } }