Используя наблюдаемое событие, я загружаю последнюю погоду из веб-службы. Я тестировал это на телефоне и эмуляторе дома, и он отлично работает. Я привёл проект со мной на работу и запустил его с помощью эмулятора. Теперь я не уверен, что это брандмауэр или что-то, но, похоже, он не получает погоду, он просто сидит там навсегда, пытаясь. Поэтому мне казалось, что если это когда-нибудь случится на телефоне, мне нужен какой-то тайм-аут, потому что если он не сможет заставить погоду сказать 10-15 секунд, тогда просто сдавайтесь.Как правильно определить время наблюдения?
Вот пример кода до сих пор
IObservable<IEvent<MyWeather.GetWeatherCompletedEventArgs>> observable =
Observable.FromEvent<MyWeather.GetWeatherCompletedEventArgs>(Global.WeatherService, "MyWeather.GetWeatherCompleted").Take(1);
observable.Subscribe(w =>
{
if (w.EventArgs.Error == null)
{
// Do something with the weather
}
});
Global.WeatherService.GetWeatherAsync(location);
Как я могу получить это время благополучно по истечении заданного времени, если ничего не происходит?
Я не могу вспомнить, где я его читал, но я слышал, что использование Timeout - это не лучшая вещь для использования, поскольку это вызывает исключения и другие проблемы. – Gaz83