2011年9月23日,第一稿
9.3 图形化语言设计模式之二——队列消息处理器
通常,我们在处理某个问题时可以将处理过程分解为内容不同的处理阶段。这些不同的处理阶段也可视为不同消息的集合。
9.3.1 队列消息
队列消息,顾名思义就是将消息排列成一队。显然这也就是待处理问题的队列,然后我们根据应用的实际情况来程序化的处理这个队列消息。
队列可以看成是一个有序元素的数组,元素添加到队列中被称为入队列;元素从队列中被删除称为出队列。
队列可以分为:后进先出(LIFO)和先进先出(FIFO)两种形式。通过下图所示处理方式可以实现不同的队列出入方式。
队列可以看成是一个有序元素的数组,元素添加到队列中被称为入队列;元素从队列中被删除称为出队列。
队列可以分为:后进先出(LIFO)和先进先出(FIFO)两种形式。通过下图所示处理方式可以实现不同的队列出入方式。
LabVIEW中提供了队列消息处理器的设计模式,可在LabVIEW的启动界面选择:
》基于模板的VI...或更多...
》新建
》基于模板
》框架
》设计模式
》队列消息处理器
参见下图。
》基于模板的VI...或更多...
》新建
》基于模板
》框架
》设计模式
》队列消息处理器
参见下图。
9.3.2 队列消息处理器图形化代码
鼠标双击上图中的“队列消息处理器”即可看到该设计模式的模板(图形化代码),参见下图。
队列消息处理器的程序结构,与我们上面看到的标准状态机的程序结构有些类似。也是由While循环和Case结构组成。不同之处是这里利用字符串(或数组)传递消息(确定下个分支),而标准状态机则是利用枚举(常数)。
队列消息处理器的特点是:可以一次同时添加多个处理分支(使用数组),而标准状态机每次只能指定下一个处理分支。或者说,我们一次可以将分支都通过字符串数组来予以确定。即便是需要添加或修改分支也完全可以通过使用数组函数来完成。所以,对列消息处理器使得程序设计更容易改灵,显得更灵活。
队列消息处理器设计模式更适合于构建程序的有序执行。
对列消息处理器至少需要两个分支:“无事件发生(No Event)”和“退出(Exit)”。其中“无事件发生”必须是默认分支,提取的字符串为空,执行默认分支[1]。
队列消息处理器的特点是:可以一次同时添加多个处理分支(使用数组),而标准状态机每次只能指定下一个处理分支。或者说,我们一次可以将分支都通过字符串数组来予以确定。即便是需要添加或修改分支也完全可以通过使用数组函数来完成。所以,对列消息处理器使得程序设计更容易改灵,显得更灵活。
队列消息处理器设计模式更适合于构建程序的有序执行。
对列消息处理器至少需要两个分支:“无事件发生(No Event)”和“退出(Exit)”。其中“无事件发生”必须是默认分支,提取的字符串为空,执行默认分支[1]。







