//Асинхронная версия с await public async Task <Forecast[]> GetForecastForAllCities2Async(City[] cities) { Forecast[] forecasts = new Forecast[cities.Length]; using (WeatherService weather = new WeatherService()) { for (int i = 0; i < cities.Length; ++i) { forecasts[i] = await weather.GetForecastAsync(cities[i]); } } return(forecasts); }
//Синхронная версия public Forecast[] GetForecastForAllCities(City[] cities) { Forecast[] forecasts = new Forecast[cities.Length]; using (WeatherService weather = new WeatherService()) { for (int i = 0; i < cities.Length; ++i) { forecasts[i] = weather.GetForecast(cities[i]); } } return(forecasts); }
//Асинхронная версия public Task <Forecast[]> GetForecastsForAllCitiesAsync(City[] cities) { if (cities.Length == 0) { return(Task.Run(() => new Forecast[0])); } WeatherService weather = new WeatherService(); Forecast[] forecasts = new Forecast[cities.Length]; var resTsk = GetForecastHelper(weather, 0, cities, forecasts); return(resTsk.ContinueWith(_ => forecasts)); }