アクティビティコーディネーター API の概要

アクティビティコーディネーター API は、Windows システム上での 遅延可能なタスク(アクティビティーと呼ばれる) の実行を調整します。

アクティビティは、タスクの実行がユーザーのエクスペリエンスやシステムのパフォーマンスを妨げない、システムが望ましい状態にある時間まで実行を延期できます。 これにより、システム上のアプリケーションの総消費量は、ユーザーが非アクティブまたはシステムがアイドル状態の時間間でより均等に分散されます。 API は、これらの決定を一元的に調整し、アプリケーションがシステム リソースを奪い合うことでユーザー エクスペリエンスを低下させるシナリオを回避するのに役立ちます。

使用方法

開発者は、アクティビティを実行するシステムの望ましい状態を記述するポリシーを定義することで API を使用します。 これらのポリシーをサブスクライブすることで、開発者は、ポリシーの条件の充足に基づいて、アクティビティを開始または停止するタイミングを通知されます。 API は、システム上のサブスクリプション間でこれらの通知を調整し、遅延可能な作業を実行するのに適切な時間を一元的に決定します。

API を使用しても、アプリケーションが適切と思われる作業を実行するのを妨げることはありません。 それは、彼らが善良な市民であり、適切なポリシーを選択し、API通知に応じて実行決定を下すことに依存しています。 さらに、API を使用するには、呼び出し元のプロセスが実行されている必要があります。 アプリケーションは、システムの状態に関係なく実行する必要がある優先度の高い作業について、アクティビティ コーディネーター API に依存しないでください。

Windows には、開発者がタスクを延期またはスケジュールするために使用できるいくつかの API があります。 次のガイドを使用して、アプリケーションに最適な API を判断してください。

API 使用目的
アクティビティ コーディネーター アクティビティコーディネータを使用して、必要なシステム条件に基づいて遅延可能なタスクの実行を調整します。
バックグラウンド インテリジェント転送サービス (BITS) BITS は、プログラマーやシステム管理者が HTTP Web サーバーや SMB ファイル共有からファイルをダウンロードしたり、HTTP Web サーバーや SMB ファイル共有にファイルをアップロードしたりするために使用されます。 転送のコストとネットワークの使用状況を考慮して、ユーザーのフォアグラウンド作業への影響をできるだけ少なくします。
タスク スケジューラ タスク スケジューラを使用すると、選択したコンピュータで日常的なタスクを自動的に実行できます。 この API を使用して、アプリケーションの起動、電子メール メッセージの送信、メッセージ ボックスの表示などのタスクを実行します。 タスクは、イベントまたはトリガーに応答して実行するようにスケジュールできます。

ポリシー、リソース、および条件

ポリシーは、多くのシステムリソースの状態を記述します。 開発者は、各リソースを希望の「条件」に関連付けてポリシーを構成し、そのリソースの使用を開始します。 条件は、リソースの定性的な状態を記述し、要因によって評価される場合があります。

リソースと条件の組み合わせにより、開発者はシステムの望ましい状態を記述して、ワークロードの実行がユーザーエクスペリエンスやシステムパフォーマンスに悪影響を与えないようにすることができます。 システム状態は常に変化するため、これらのポリシーをサブスクライブすると、ポリシーが満たされている (オープン) か、満たされていない (クローズされている) かに基づいて、作業を開始または停止するタイミングが通知されます。

ポリシー テンプレート

ポリシーテンプレートは、開発者が、ほとんどのアプリケーションのニーズを満たすように設計された事前定義されたリソース条件を使用してポリシーを構成する方法です。 ポリシー テンプレートは、ポリシーを作成するときに必要であり、開発者のニーズに固有のポリシーを構成するための開始点として使用されます。 空のポリシーテンプレートは、ポリシーを完全に制御したい開発者のために提供されています。

アクティビティコーディネーター API と用語

適切なアクティビティコーディネーターポリシーの選択

アクティビティコーディネーターのサンプルプロジェクト