/*-------------------------------------------------------------------------------*/ public void Get72HrForecast() { String uri = XML_FOLDER + Utils.GetXmlFileName(Navigation.ForecastCity, XML_72HR_POSTFIX); ForecastDownloader forecastDownloader = new ForecastDownloader(); forecastDownloader.DownloadStringCompleted += ((sender, e) => { if (e.Error != null) { if (e.Error.Message == WeatherForecast.Util.DownloadStringCompletedEventArgs.NETWORK_UNAVAILABLE) { Load72HrForecastData(); } } else if (e.Result == null) { Load72HrForecastData(); } else { Utils.saveXML(Utils.GetXmlFileName(Navigation.ForecastCity, XML_72HR_POSTFIX), e.Result); Load72HrForecastData(); TileUpdateWorker tileUpdateWorker = new TileUpdateWorker(); tileUpdateWorker.UpdateFromXml(); } }); forecastDownloader.DownloadStringAsync(new Uri(uri, UriKind.Absolute)); /* if (NetworkInterface.GetIsNetworkAvailable()) * { * try * { * WebClient downloader = new WebClient(); * //Uri rssUri = new Uri(XML_FOLDER + XML_WEEKDAY, UriKind.Absolute); * String uri = ""; * if (Navigation.ForecastCity.ID.StartsWith("630")) * uri = XML_FOLDER + GetXmlFileName(XML_72HR_POSTFIX); * else * uri = XML_FOLDER + GetXmlFileName(XML_72HR_POSTFIX); * Uri rssUri = new Uri(uri, UriKind.Absolute); * downloader.DownloadStringCompleted += new DownloadStringCompletedEventHandler(On72HrForecastDownloaded); * downloader.DownloadStringAsync(rssUri); * } * catch (Exception ex) * { * MessageBox.Show("無法下載最新的天氣資訊!請檢查網路連線。"); * Load72HrForecastData(); * } * } * else * { * MessageBox.Show("無法下載最新的天氣資訊!請檢查網路連線。"); * Load72HrForecastData(); * }*/ }
/// <summary> /// 執行排程工作的代理程式 /// </summary> /// <param name="task"> /// 叫用的工作 /// </param> /// <remarks> /// 這個方法的呼叫時機為叫用週期性或耗用大量資料的工作時 /// </remarks> protected override void OnInvoke(ScheduledTask task) { TileUpdateWorker tileUpdateWorker = new TileUpdateWorker(); tileUpdateWorker.UpdateCompleted += ((sender) => { NotifyComplete(); }); tileUpdateWorker.Update(); }