等待多个通知函数
- 更新时间2025-07-30
- 阅读时长4分钟
等待直到至少一个指定的通知器收到消息。
通知器收到消息后,该函数可继续执行。使用发送通知函数向服务器发送消息。如通知器引用变为无效(例如,另一个函数通知器引用关闭时),该函数可停止等待并返回错误代码1122。如果通知符不包含信息,该函数将等待通知符收到信息。

输入/输出
通知器
—
通知器是通知器引用数组。 通过获取通知器引用函数获取通知器引用。
忽略上一个(F)
—
忽略上一个表明在调用函数前是否忽略LabVIEW发送给通知器的消息。 如值为TRUE并且通知器包含调用该函数前的消息,函数可等待直至通知器收到另一条消息。如值为FALSE(默认值)并且通知器包含调用该函数前的消息,函数可继续执行。
超时毫秒(-1)
—
超时毫秒指定函数等待通知器接收消息的时间,以毫秒为单位。 默认值为-1,表示永不超时。 如函数等待超时毫秒并且通知器没有接收到信息,则超时?的值为TRUE。
错误输入(无错误)
—
错误输入表明该节点运行前发生的错误条件。该输入将提供标准错误输入功能。
通知器输出
—
通知器输出返回的通知器引用数组包含收到的消息。
通知
—
通知是由通知器收到的最后通知组成的数组。 除非子类型是数组,该数据类型可匹配通知器的子类型。如子类型是数组,数据类型是簇数组。
超时?
—
超时?如通知器在超时前未收到消息或发生错误,则值为TRUE。
错误输出
—
错误输出包含错误信息。该输出提供标准错误输出功能。 |
等待通知函数只能用于单个通知器引用。
该函数每个唯一的实例都记录最后收到的消息的时间标识。如仅收到一条消息,该函可不再记录时间标识代表的消息,通知器数组中仅有的项为数组的第一个元素。
函数与不同的通知器重复进行通信时,如产生死锁,通过等待带通知器历史的多个通知函数可存储每个通知器的时间标识。该函数可阻止产生死锁。
如忽略上一个为FALSE,则等待多个通知函数的每个实例可判断是否有一个或多个通知器,具有比该函数最近收到的时间标识更新的消息。如有一个或多个通知器具有新消息,函数可返回所有此类消息。
忽略上一个为TRUE时,即使当前位于通知器中的消息从未被读取过,该函数也总是等待新消息。
该函数并不删除通知器中的消息。函数的特定实例仅返回消息一次,但函数的其他实例或等待通知函数的实例可在用户通过新消息调用发送通知函数前重复该消息。
范例
请参考LabVIEW附带的下列范例文件。
- labview\examples\Synchronization\Notifier\Wait on Multiple Notifiers.vi
通知器
—
忽略上一个(F)
—
超时毫秒(-1)
—
错误输入(无错误)
—
通知器输出
—
通知
—
超时?
—
错误输出
—