1

現在、ボタンイベントを使用してWebサービス呼び出しを行っていますが、アプリで5分ごとにこれを自動的に実行したいと考えています。ボタン イベントは MainPage.xaml.cs に配置されるようになりました。Windows ストア アプリにタイマー イベントがある場合、これを実行する最善の方法は何ですか?

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

2 に答える 2

2

ここに貼り付けるコードは少し多いので、最初に適切なリンクを追加し、HTML/JS を使用する人にも提供します。

HTML/JS を使用して いる場合は、「Windows 8 アプリで setTimeout を使用するタイマー」を参照してください。

cs/xaml を使用しますが、これを達成する方法に応じて js を使用することもできます: タイマーを使用して作業項目を送信する方法

繰り返しタイマーについては、次を参照してください: 定期的な作業項目を作成する方法

あなたの場合、アプリケーションが実行されていないときでもこれを行う必要がありますか? その場合、最大で 15 分ごとに実行されるバックグラウンド タスクが必要になります。バックグラウンド タスクを 作成して登録します。

したがって、基本的なシナリオは次のとおりです (msdn ページから) が、キャンセルする方法が必要な場合は、サイトでも提供されています。これは、アプリケーションが中断または終了されたときに実行を停止することに注意してください。これは、アプリケーションが閉じられたとき、または約 5 秒間アクティブなアプリケーションでなくなったときです。


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);
于 2013-02-20T19:20:32.857 に答える
0

アプリが実行されていないときにこれが機能することを探している場合は、システム イベント バックグラウンド タスクを使用できます。

アプリが実行されていない場合でも、最低 15 分ごとに起動します。

于 2013-02-22T04:32:39.500 に答える