码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • LabVIEW中编程更改进程的优先级


    LabVIEW中编程更改进程的优先级

    在labVIEW中可以调用kernel32动态链接库来更改进程的优先级。需要两个函数:GetCurrentProcess()和SetPriorityClass()。

    有6个优先级可供选择,这6个优先级及其标识码列表如下:

    空闲(IDLE): IDLE_PRIORITY_CLASS

    次低(BELOWNORMAL): BELOW_NORMAL_PRIORITY_CLASS

    普通(NORMAL): NORMAL_PRIORITY_CLASS

    次高(ABOVENORMAL): ABOVE_NORMAL_PRIORITY_CLASS

    高级(HIGHPRIORITY): HIGH_PRIORITY_CLASS

    实时(REALTIME): REALTIME_PRIORITY_CLASS

    在LabVIEW中,首先建立一个调用库函数节点,并指向kernel32.dll(一般位于c:\windows\system32)。建立调用后函数原型的样子为:

    unsigned longGetCurrentProcess(void)

    因为这是调用了Windows的API函数,调用方式改为stdcall(WINAPI)。第二个调用库函数VI与第一个相似,除了使用SetPriorityClass函数。建立第二个调用库函数节点后函数原型的样子为:

    unsigned longSetPriorityClass(unsigned long handle, unsigned long priority)

    同样的,调用方式改为stdcall(WINAPI)。 GetPriorityClass函数的返回值与SetPriorityClass函数的句柄相关,相应的优先级类型是十六进制 (hex)。在winbase.h文件中(包含在Microsoft的WIN32 SDK中),可以找到定义优先级的声明。它们是:

    #defineIDLE_PRIORITY_CLASS 0x00000040

    #defineBELOW_NORMAL_PRIORITY_CLASS 0x00004000

    #define NORMAL_PRIORITY_CLASS0x00000020

    #defineABOVE_NORMAL_PRIORITY_CLASS 0x00008000

    #defineHIGH_PRIORITY_CLASS 0x00000080

    #defineREALTIME_PRIORITY_CLASS 0x00000100

    使用这些值,可以指定线程的优先级。举例来说,如果想把进程的优先级设置为空闲(IDLE),只要在调用库函数节点的输入端连上一个十六进制值为40的常数就好了。

    打开、运行附件中的例子。运行例子的时候,打开Windows的任务管理器,在更改LabVIEW程序的优先级的时候可以观察LabVIEW优先级的状态。

    ​

    编辑

    添加图片注释,不超过 140 字(可选)

    LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序

    上文中提到的例子和资料,均在word中的附件里,可点击下载。进一步了解,可联系我们。

    LabVIEW中编程更改进程的优先级 - 北京瀚文网星科技有限公司 (bjcyck.com)

     

  • 相关阅读:
    从0到1学习用lua编写neovim插件
    PyQt5 布局Layout
    Win10系统中GPU深度学习环境配置记录
    Jenkinsfile+Dockerfile前端vue自动化部署
    前端八股文-类型判断typeof,instanceof,类式,构造函数,组合,原型式,寄生式继承,手写new、bind、call、apply
    ArrayList 源码分析扩容原理
    Linux项目自动化构建工具:make与Makefile的基本用法
    C++ 六个默认成员函数 + this指针
    LCT (link cut tree)动态树学习
    Django(八、如何开启事务、介绍长见的字段类型和参数)
  • 原文地址:https://blog.csdn.net/bjcyck/article/details/126002875
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号