• 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)

     

  • 相关阅读:
    【AI必备利器】GPU白嫖指南
    vue路由&nodejs环境搭建
    springboot + easyRules 搭建规则引擎服务
    MIT6.824-lab2A-leader选举(leader election)
    SAP ALV 报表增删改查 及 下载模板导入文件
    java中的阻塞队列和copyOnWriteArrayList
    Day12力扣打卡
    Litestar 4D:统一眩光值计算
    SpringCloud微服务-SpringAMQP(RabbitMQ)
    Linux: Cache 简介
  • 原文地址:https://blog.csdn.net/bjcyck/article/details/126002875