刷新Windows应用商店中的数据

时间:2013-02-20 19:17:28

标签: c# windows-8 microsoft-metro windows-store-apps

我正在创建一个具有一些webservice调用的Windows应用商店。当前我使用按钮事件来进行webservice调用,但我希望应用程序每5分钟自动执行一次。 按钮事件现在放在MainPage.xaml.cs中 执行此操作的最佳方法是Windows应用商店中是否存在任何计时器事件?

  public async void GetWebServiceDataButton(object sender, RoutedEventArgs e)
    {
     ........
     .........
     Retrieve data from web service
    }

2 个答案:

答案 0 :(得分:2)

这里粘贴的代码有点多,所以我先添加相应的链接,然后我也会为那些使用HTML / JS的人提供。

对于那些使用HTML / JS的人请参阅: Timers using setTimeout in a Windows 8 app

使用cs / xaml虽然您仍然可以使用js,具体取决于您希望如何实现此目的: How to submit a work item using a timer

对于重复计时器,请参阅: How to create a periodic work item

现在在您的情况下,即使应用程序未运行,您是否还需要这样做? 如果是这样,那么你将需要一个后台任务,每15分钟左右运行一次 Create and register a background task

所以一个基本的场景如下(来自msdn页面),但是如果你想要一种取消它的方法,那么也在网站上提供了。请注意,当您的应用程序被暂停或终止时,这将停止运行,即应用程序已关闭或不再是活动应用程序约五秒钟。


var period = TimeSpan.FromMinutes(5);

var timer = ThreadPoolTimer.CreatePeriodicTimer((source) =>
    {
        //do your query/work here
        Dispatcher.RunAsync(CoreDispatcherPriority.High,
        () =>
        {
           // Now that work is done, safely access UI components here to update them
        });
    }, period);

答案 1 :(得分:0)

如果您在应用未运行时正在寻找此功能,则可以使用系统事件后台任务。

即使您的应用未运行,它也会每15分钟至少唤醒一次。