複数からのノーティフィケーション待機関数
- 更新日2025-07-30
- 6分で読める
指定したノーティファイアの最低1つがメッセージを受信するまで待機します。
ノーティファイアのいずれかがメッセージを受信すると、この関数は実行を継続します。「ノーティフィケーション送信」関数を使用して、メッセージを送信します。ノーティファイアリファレンスが無効になると (たとえば、他の関数が閉じた場合)、関数は待機を中止して、エラーコード1122を返します。このノーティファイアにメッセージがない場合、この関数は配列内のノーティファイアがメッセージを受信するまで待機します。

入力/出力
ノーティファイア
—
ノーティファイアは、ノーティファイアリファレンスの配列です。 ノーティファイア取得関数を使用して、ノーティファイアのリファレンスを取得します。
前を無視 (F)
—
前を無視は、この関数の呼び出し前にノーティファイアに送信されるメッセージを無視するかどうかを示します。 設定がTRUEの場合、この関数は、呼び出される前にノーティファイアにメッセージが含まれていると、ノーティファイアが別のメッセージを受け取るまで待機します。設定がFALSE (デフォルト) の場合、この関数は、呼び出される前にノーティファイアにメッセージが含まれていると実行を継続します。
タイムアウト (ms) (-1)
—
タイムアウト (ms) は、ノーティファイアがメッセージを受信するまでの関数の待機時間をミリ秒で指定します。 デフォルトは-1で、「タイムアウトしない」です。 関数がタイムアウト (ms) を待機し、ノーティファイアがメッセージを受信しない場合、タイムアウト?はTRUEとなります。
エラー入力 (エラーなし)
—
エラー入力は、このノードを実行する前に発生したエラーの状態を示します。この入力は、標準エラー入力として機能します。
ノーティファイア出力
—
ノーティファイア出力は、メッセージを受信したノーティファイアリファレンスの配列を返します。
ノーティフィケーション
—
ノーティフィケーションは、ノーティファイアが最後に受信したメッセージの配列です。 サブタイプが配列の場合を除いて、このデータタイプはノーティファイアのサブタイプと一致するように変更されます。サブタイプが配列の場合、データタイプは配列のクラスタになります。
タイムアウト?
—
タイムアウト?は、関数がタイムアウトになる前にノーティファイアがメッセージを受信しない場合、またはエラーが発生した場合にTRUEとなります。
エラー出力
—
エラー出力には、エラー情報が含まれます。この出力は、標準エラー出力として機能します。 |
1つのノーティファイアを対象にする場合は「ノーティフィケーション待機」関数を使用してください。
「ノーティフィケーション待機」関数の各固有のインスタンスは、最後に受信したメッセージのタイムスタンプを記録します。この関数が1つのメッセージのみ受信する場合、関数はメッセージに対するタイムスタンプの記録を停止して、ノーティファイア配列の項目はその最初の要素のみになります。
この関数を異なるノーティファイアで繰り返し使用するとデッドロックが発生する場合は、「ノーティフィケーション待機 (ノーティファイア履歴付き)」関数を使用して各ノーティファイアのタイムスタンプを保存します。この関数はデッドロックを回避します。
前を無視がFALSEの場合、「複数からのノーティフィケーション待機」関数の各インスタンスは、1つまたは複数のノーティファイアに、最後に受信したタイムスタンプよりも新しいメッセージがあるかどうかを確認します。1つまたは複数のノーティファイアに新規メッセージがある場合、すべてのメッセージが返されます。
前を無視がTRUEで、現在ノーティファイアにあるメッセージが以前認識されていない場合でも、この関数は必ず新規メッセージを待機します。
この関数はノーティファイアからメッセージを削除しません。関数の特定のインスタンスは1回のみメッセージを返しますが、その関数の別のインスタンスまたは「ノーティフィケーション待機」関数へのインスタンスは、新規メッセージと「ノーティフィケーション送信」関数を呼び出すまで同じメッセージを返し続けます。
サンプルプログラム
LabVIEWに含まれている以下のサンプルファイルを参照してください。
- labview\examples\Synchronization\Notifier\Wait on Multiple Notifiers.vi
ノーティファイア
—
前を無視 (F)
—
タイムアウト (ms) (-1)
—
エラー入力 (エラーなし)
—
ノーティファイア出力
—
ノーティフィケーション
—
タイムアウト?
—
エラー出力
—