/// <summary> /// 執行排程工作的代理程式 /// </summary> /// <param name="task"> /// 叫用的工作 /// </param> /// <remarks> /// 這個方法的呼叫時機為叫用週期性或耗用大量資料的工作時 /// </remarks> protected override void OnInvoke(ScheduledTask task) { TileUpdateWorker tileUpdateWorker = new TileUpdateWorker(); tileUpdateWorker.UpdateCompleted += ((sender) => { NotifyComplete(); }); tileUpdateWorker.Update(); }
/*-------------------------------------------------------------------------------*/ 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(); }*/ }