1

8時間ごとにバックグラウンドタスクを実行したいと思います(より頻繁に問題ありません)。バックグラウンドタスクの実行が想定されているときにコンピューターの電源がオフになっている、または休止状態になっている場合、その反復がスキップされるというのは本当ですか?

そうだとすると、次の要件は、コンピューターが休止状態から抜けたとき、または電源がオンになったときにスケジュールすることです。後者は単純です。セッションの開始時にシステムトリガーのバックグラウンドタスクをスケジュールできます。しかし、ユーザーがコンピューターを「休止状態から解除」した場合の対処方法がわかりません。これについて何か提案はありますか?UserPresentトリガーは有望に見えますが、それがいつ発生するかについての定義を見つけることができませんでした。

4

2 に答える 2

2

このコメントを参照してください: http://blogs.msdn.com/b/windowsappdev/archive/2012/05/24/being-productive-in-the-background-background-tasks.aspx#10318589

いいえ、システムがスリープ/休止状態の場合、TimeTrigger はおそらくスキップされます。

利用可能な条件はここにあります: http://msdn.microsoft.com/en-US/library/windows/apps/windows.applicationmodel.background.systemconditiontype

2 つのバックグラウンド タスクを作成することをお勧めします (バックグラウンド タスクの経験があまりないので、これがどの程度可能かはわかりません)。1 つは TimeTrigger 用で、もう 1 つは UserPresent 条件を使用して実行されます。TimeTrigger が正常に実行された場合は、最後の実行時間のフラグまたは値をどこかに保存し、2 番目のタスクが実行されようとしているときに、このフラグ/最後の実行時間を確認し、必要に応じて中止または続行します。

お役に立てれば。

于 2012-10-10T04:56:19.307 に答える
-1

私の提案は、次の SDK サンプルをダウンロードすることです。

http://code.msdn.microsoft.com/windowsapps/Background-Task-Sample-9209ade9

サンプルを実行し、TimeTrigger を使用してバックグラウンド タスクを登録し、タスクが完了する直前にマシンを休止状態にします。次に、タスク タイマーが期限切れになるまで十分に待機し、マシンを復元して (サンプル アプリを実行したまま)、サンプル アプリに戻ってタスクが完了したかどうかを確認します。

これにより、再開時にタスクが実行されるかどうかがわかります。

于 2012-10-09T23:36:49.970 に答える