From 09:00 PM Friday, August 7 - 10:30 AM CST Saturday, August 8, ni.com will be undergoing system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

非同期呼び出しを開始 (ノード)



LabVIEW 2018ヘルプ


発行年月: 2018年3月
製品番号: 371361R-0112
製品情報を参照

ダウンロード (Windowsのみ)


LabVIEW 2016ヘルプ
LabVIEW 2017ヘルプ
LabVIEW 2018ヘルプ
LabVIEW 2019ヘルプ
LabVIEW 2020ヘルプ

1つ上のパレット: アプリケーション制御VIおよび関数

インストールパッケージ: ベース開発システム

リファレンス入力で指定されたVIへの非同期呼び出しを開始します。 リファレンスを「VIリファレンスを開く」関数で非同期実行に対してどのように設定するかによって、呼び出し後にVIを無視したり、後で非同期呼び出しを待機ノードでVIの出力を取得できます。

詳細  サンプル

リファレンスは、非同期で呼び出すターゲットVIへのリファレンスです。 リファレンスは以下の条件を満たす必要があります。
  • タイプ指定であること。
  • 「VIリファレンスを開く」関数の0x80または0x100オプションフラグによる非同期実行に対応できること。 これらの非同期オプションと他のオプションフラグを組み合わせることができます。
エラー入力は、このノードを実行する前に発生したエラーの状態を示します。 この入力は、標準エラー入力として機能します。
リファレンス出力は、未変更のリファレンスを返します。
エラー出力には、エラー情報が含まれます。 この出力は、標準エラー出力として機能します。

非同期呼び出しを開始の詳細

インタフェースの詳細

このノードのインタフェースには次の機能が含まれます。

  • ターゲットVIの入力へのアクセス―非同期呼び出しを開始ノードのリファレンス入力にタイプ指定VIリファレンスを配線すると、ノードはリファレンスVIのコネクタペーンの入力を表示します。 コネクタペーンの入力端子にデータを配線して、ターゲットVIにデータを渡します。
  • ターゲットVIの出力へのアクセスなし―非同期呼び出しを開始ノードは、VI呼び出しを実行の完了を待たずに開始するためのものであるため、非同期呼び出しを開始ノードでVI呼び出しの出力を取得することはできません。 ターゲットVIの出力を取得するには、非同期呼び出しを待機ノードを使用します。

実行の詳細

このノードは以下のように動作します。

  • 直列または並列実行―複数の非同期呼び出しを開始ノードに同じVIリファレンスを渡すと、デフォルトでは呼び出しが直列実行されます。 並列実行を可能にするには、ターゲットVIを再入可能にし、「VIリファレンスを開く」関数でリファレンスを開いたときに0x40オプションフラグを設定します。 このノードは、呼び出しが直列実行されるか並列実行されるかに関係なく、すぐに出力を返すため、発呼者VIのデータフローが止まることはありません。
  • オプション入力に0x40を使用するとVIサーバプロパティとメソッドが呼び出されたVIクローンを変更しない―ターゲットVIへのリファレンスを開く時に0x40オプションフラグを設定すると、非同期呼び出しを開始ノードは再入可能VIではなくリファレンスVIのクローンの呼び出しを開始します。 したがって、VIサーバプロパティ/メソッドを「VIリファレンスを開く」関数が返す元のリファレンスで呼び出しても、そのプロパティまたはメソッドは非同期呼び出しを開始ノードが実際に呼び出すVIクローンには反映されません。 実際に呼び出されたVIに対してフロントパネルを開いたり、位置を決めたりするVIサーバタスクを実行するには、再入可能VI自身の中でプロパティまたはメソッドを呼び出す必要があります。
  • ユーザインタフェーススレッドがアイドル状態である必要がない

サンプル

非同期呼び出しを開始ノードの使用サンプルは、以下のVIで参照できます。

  • Asynchronous Call and Forget VI: labview\examples\Application Control\VI Server\Asynchronous Call By Reference
  • Asynchronous Call and Collect VI: labview\examples\Application Control\VI Server\Asynchronous Call By Reference


この記事は役に立ちましたか。

役に立たなかった