0

私は自分のアプリケーションに C# を使用しています。ユーザーが PC にログインした直後に、ライブ タイルが更新を開始することが重要です。今のところ、ライブ タイルの更新に時間トリガーを使用しているため、更新は 15 分以内に開始されます。タスクを手動でトリガーする方法はありますか、またはユーザーがシステムにログオンしたときにライブ タイルの更新を開始する方法は他にありますか?

4

3 に答える 3

0

バックグラウンドタスクを手動で呼び出すことはできませんが、バックグラウンドタスクが実行するコードを使用して共有ライブラリを作成し、バックグラウンドタスクから直接呼び出すことができます。次に、アプリケーションから手動でトリガーする場合はいつでも、そのコードを手動で呼び出すことができます。

于 2012-11-29T17:09:58.920 に答える
0

UserPresent SystemTriggerTypeは、あなたが求めているものかもしれません。私が考えているのは、時間トリガーとシステムトリガーの両方を使用することです。したがって、15分ごとに、ユーザーがデバイスのロックを解除したときに実行します。SystemTrigger thoを使用すると、CPU時間はそれほど長くなるとは思いませんが、何もないよりはましです http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.background.systemtriggertype .aspx

于 2012-12-02T08:35:25.357 に答える
0

DispatcherTimer は、設定した間隔でイベントを発生させるのに役立ちます。App() コンストラクターにコードを追加できます。

    // _dispatcherTimer is probably a class level variable.
    DispatcherTimer _dispatcherTimer;


    // How often
    uint _DoSomethingInterval = 500;

    // Set up a DispatchTimer
    _dispatcherTimer = new DispatcherTimer();
    _dispatcherTimer.Tick += DoSomething;

    // If you like lambdas, do this
    //_dispatcherTimer.Tick += (sender, object ) => 
    // { Debug.WriteLine("time passed so do something"); }


    _dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, (int)_desiredReportInterval);

    // The callback for the timer
    private void DoSomething(object sender, object args)
    {
        Debug.WriteLine("time passed so do something"); 
    }
于 2012-12-04T03:05:58.523 に答える