ユーザが明示的な状態遷移を実行する場合もあれば、ユーザがタスクに依存して間接的な状態遷移を実行すべき場合もあります。どちらの方法を使用するかは、アプリケーションによって異なります。以下の場合は、明示的な状態遷移を実行する必要があります。

  • 確認—一部のアプリケーションでは、タスクのチャンネル、タイミング、トリガ属性/プロパティを対話的に構成する必要があります。そのようなアプリケーションでは、属性/プロパティ値が有効であることを保証するために、タスクを明示的に確認します。
  • 予約—以下がすべて成り立つ場合、タスクを明示的に予約します。
    • アプリケーションに含まれている多数の異なるタスクが、同じリソースセットを使用する。
    • それらのタスクの1つが繰り返し操作を実行する。
    • 繰り返し操作の開始後に、そのタスクが使用するリソースを他のタスクに占有させないようにする必要がある。
    タスクを予約すると、そのタスクが使用するリソースが独占的に確保されます。また、タスクを予約すると、他のタスクがそれらのリソースを占有できなくなります。たとえば、アプリケーションに2つのタスクが含まれていて、それぞれが測定シーケンスを実行するとします。各シーケンスが他のシーケンスの開始前に必ず完了するように、測定シーケンスを開始する前に各タスクを明示的に予約します。
  • コミット—アプリケーションでタスクを繰り返し開始、停止して複数の測定/生成を行う場合は、タスクを明示的にコミットします。タスクを開始するたびに、タスクでリソースを取得して構成する必要があります。タスクを明示的にコミットすると、そのタスクが使用するリソースが独占的に確保され、それらのリソースに対して一部の設定がプログラムされます。タスクを明示的にコミットすることで、タスクがそれらの操作を1回実行することが保証され、タスク全体の開始時間が短縮されます。たとえば、アプリケーションで有限のハードウェアタイミング測定を繰り返し実行する場合は、測定を繰り返し実行する前に、タスクをコミットします。これにより、タスクの開始に必要な時間が大幅に短縮されます。 また、そのようにして集録したサンプルに対して追加の読み取り操作を行う場合も、タスクを明示的にコミットする必要があります。詳細については、「タスクを開始」関数/VIを使用するを参照してください。
  • 開始—アプリケーションが読み取り/書き込み操作を繰り返し実行する場合は、明示的にタスクを開始します。タスクを開始すると、以下が実行されます。
    • タスクが使用するリソースが予約される。
    • それらのリソースに対して設定の一部がプログラムされる。
    • 指定された操作の実行が開始される。
    これらの操作は、アプリケーションが読み取りまたは書き込み操作を実行するたびに発生します。タスクを明示的に開始することで、タスクがこれらの操作を1回実行することが保証され、必要な時間が大幅に短縮されます。たとえば、アプリケーションがソフトウェアタイミングによる単一サンプルの読み取り操作を繰り返し実行する場合は、各読み取り操作の前にタスクを明示的に開始します。これにより、各読み取り操作に必要な時間が大幅に短縮されます。