コード例 #1
0
 public Task <CurrentWeatherInTownModel> GetWeatherAsync(GetWeatherMsg msg, CancellationToken cancellationToken)
 {
     using (var client = new HttpClient())
     {
         var requestUrl = GetRequestUrl(msg.CityName);
         var response   =
             client.GetAsync(requestUrl,
                             cancellationToken).Result;
         var data   = response.Content.ReadAsStringAsync().Result;
         var result = Convert(data);
         return(result);
     }
 }
コード例 #2
0
        public async Task <CurrentWeatherInTownModel> GetWeatherAsync(GetWeatherMsg msg,
                                                                      CancellationToken cancellationToken)
        {
            var work = new List <Task <CurrentWeatherInTownModel> >();

            foreach (var weatherClient in _clients)
            {
                work.Add(weatherClient.GetWeatherAsync(msg, cancellationToken));
            }

            _timer.Start();
            var result = await Task.WhenAny(work).Result;

            _timer.Stop();

            result.ElapsedTime = _timer.ElapsedTicks;
            Log.Information($"Response from {result.Origin} was acquired in {_timer.ElapsedTicks} ticks");

            return(result);
        }