66.后台任务.doc_第1页
66.后台任务.doc_第2页
66.后台任务.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

后台任务有一些任务在运行的时候,并不需要与用户交互。它们通常在不打扰用户其它工作的时候默默的执行。这样的任务叫后台任务。与之对比,前台任务就是用户看得见的。比如,一个文本编辑软件,帮助用户上编辑文字的任务都是前台执行的。如果这个软件做得好,最好还有自动保存文件的功能,这样在系统突然崩溃之后,不至于所有用户做的改动都白费。自动保存这个功能一般都被作为后台任务,他在执行时,不打扰用户其它工作。后台任务的应用还有很多。在 LabVIEW 中实现后台任务的方法,就是使用 VI Scripting 技术,动态把负责后台的任务在新的线程里启动起来。下面以一个比较常用的功能来说明后台任务是如何实现的。大型 LabVIEW 程序启动的时候可能会比较慢,这是因为程序在它所有的子VI都被装入内存之后才能执行。把大量子VI装入内存可能要花费几秒钟的时间,如果这段时间,什么都不显示给用户,用户可能会以为是程序出错或者死机了,从而做出一些错误的操作。好的做法是,在启动程序的时候立刻显示给用户一个提示界面,告诉用户程序正在装载,已经装载的进度。同时把所有的子VI装入内存,然后再启动程序的主界面。在程序显示启动画面这个阶段,当子VI全部装入内存后,启动画面仍然显示在前台,而程序会再启动一个后台任务,把主程序运行起来。之后,启动画面程序把自己关闭,而主程序界面也从后台跳到前台来了。启动画面的程序代码如下图所示:它由5个部分组成:第1部分负责把主程序的子VI都装入内存(用 Open VI Reference 函数打开这些子 VI 就可以把它们装入内存)。这部分与后台任务无关,不细说了。第2部分 Open VI Reference 函数打开主程序的主VI,它的输入是主VI的地址。后续使用到的针对这个 VI 的 Scripting 函数,都依赖于在此打开的 VI 的引用。第3部分设置主VI的 Front Panel:Open 属性。这个属性值为真的时候,主程序的界面被显示出来。在我们这个程序中,主程序最终是要跳到前台来与用户交互的,所以需要显示他的界面。有些后台任务,比如自动保存任务,没有交互界面,就不需要设置此属性。第4部分调用主VI的 Run VI 方法。调用这个方法之后,主程序开始运行。目前主程序还是作为后台任务在运行。这里需要注意的是 Run VI 方法的两个参数:Wait Until Done 参数如果设为真,启动画面程序运行到这里就会暂停下来,一直等到后台任务结束,才继续执行后面的代码。但是,作为启动画面程序,我们显然不希望出现这种情况。我们需要让前台任务和后台任务同时执行,所以这个参数在本程序中被设为“假”。后台程序在另一个线程中被执行,它的结束与否不影响当前程序的执行,我们的启动画面程序会立即去执行下一条语句。用 Open VI Reference 函数打开的引用必须被关掉,否则,VI被装入内存,却从来不被卸除出内存,就会引起内存泄漏。Auto Dispose Ref 参数用于决定由谁来关闭动态运行起来的VI的引用,是前台任务,还是后台任务自己。针对于我们的例子,后台任务是主程序,我们希望用户关闭它的同时,把它从内存中卸除。所以实例中这个参数的值是“假”,后台程序结束时自动释放引用。对于那些没有界面的后台任务,它们的启动、停止都需要由前台程序来控制。这是这个参数就需要被设为“真”。前台程序还需要这个引用来停止后台任务、卸除后台任务的VI。第5部分是对启动画面VI自身进行操作的。程序运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论