刷新windows商店应用程序中的数据

本文关键字:数据 应用程序 windows 刷新 | 更新日期: 2023-09-27 18:00:22

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

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

刷新windows商店应用程序中的数据

在这里粘贴的代码有点多,所以我将首先添加适当的链接,并为那些使用HTML/JS的人提供链接。

对于那些使用HTML/JS的用户,请参阅:在Windows8应用中使用setTimeout的计时器

使用cs/xaml,尽管您仍然可以使用js,这取决于您想要如何实现:如何使用计时器提交工作项

有关重复计时器,请参阅:如何创建定期工作项

现在,在您的情况下,即使应用程序没有运行,您也需要这样做吗?如果是这样,那么你需要一个最多每15分钟运行一次的后台任务创建并注册后台任务

因此,一个基本的场景如下(来自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);

如果您想在应用程序未运行时使用系统事件后台任务,则可以使用该任务。

即使你的应用程序没有运行,它也会至少每15分钟唤醒一次。