使用事件中的可觀察事件,我從Web服務下載最新的天氣。我在家裏的電話和模擬器上測試了這一點,它工作正常。我帶着這個項目來工作,並在那裏使用模擬器運行它。現在我不確定它是防火牆還是防火牆,但它似乎沒有得到天氣,它只是永遠坐在那裏,嘗試。所以它讓我想到,如果這種情況發生在手機上,那麼我需要某種暫停,如果它不能在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 2012-04-13 11:26:52