软件注册站
热情软件屋

 
为什么设置线程与进程的优先级总是不成功
编号: QA003591    
建立日期: 2000年11月27日 最后修改日期: 2003年12月27日
所属类别: Visual Basic - Windows API
   
    操作系统:Windows98
    编程工具:VB6.0
    问题:我想在VB中通过Windows的API函数来设置线程与进程的优先级,API函数的使用方法都是很简单的,可是调用的结果总是不成功,不知道为什么。程序如下:(打开VB,在默认的Form1中插入如下代码:)
    Option Explicit
    
    Private Declare Function SetThreadPriority Lib "kernel32" (ByVal hThread As Long, ByVal nPriority As Long) As Long
    Private Const THREAD_BASE_PRIORITY_MAX = 2
    Private Declare Function SetPriorityClass Lib "kernel32" (ByVal hProcess As Long, ByVal dwPriorityClass As Long) As Long
    Private Const REALTIME_PRIORITY_CLASS = &H100
    Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
    Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
    Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
    
    Private Sub Form_Load()
     MsgBox (SetThreadPriority(App.ThreadID, THREAD_BASE_PRIORITY_MAX))
     MsgBox (SetPriorityClass(GetCurrentProcessId, REALTIME_PRIORITY_CLASS))
    End Sub
    
    根据API的使用说明,SetThreadPriority()和SetPriorityClass()函数如果成功的化,返回值都为非零,而程序运行后会看到弹出两次对话框,显示的都是“0”。
    水平: 中级(叮叮当当)
   
    SetThreadPriority()函数的第1个参数是HANDLE类型,不要使用GetCurrentThreadID函数,将GetCurrentProcessID改为GetCurrentProcess即可。
    
    相关问题:
    QA001082 "如何调整线程的优先级"

    

此问题由gaofeng、郑回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, Windows API, win32, api, windows api, gdi32, kernel

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio