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

入力/出力
![]() リファレンスは、非同期で呼び出すターゲットVIへのリファレンスです。
リファレンスは以下の条件を満たしていなければなりません。
![]() エラー入力は、このノードを実行する前に発生したエラーの状態を示します。この入力は、標準エラー入力として機能します。
![]() リファレンス出力は、未変更のリファレンスを返します。
![]() エラー出力には、エラー情報が含まれます。この出力は、標準エラー出力として機能します。
|
インタフェースの詳細
このノードのインタフェースには次の機能が含まれます。
- ターゲット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自身の中でプロパティまたはメソッドを呼び出す必要があります。
- ユーザインタフェーススレッドがアイドル状態である必要がない
サンプルプログラム
LabVIEWに含まれている以下のサンプルファイルを参照してください。
- labview\examples\Application Control\VI Server\Asynchronous Call By Reference\Asynchronous Call and Forget.vi
- labview\examples\Application Control\VI Server\Asynchronous Call By Reference\Asynchronous Call and Collect.vi