設定指定執行緒的優先順序

2021-09-30 03:53:04 字數 2226 閱讀 8924

bool setthreadpriority(

handle hthread, // handle to the thread

int npriority // thread priority level

功能說明

設定指定執行緒的優先順序

引數說明

hthread 要設定的執行緒控制代碼

npriority 優先級別引數 可設定為一下引數

thread_priority_above_normal 為比一般優先順序高乙個等級

thread_priority_below_normal 比一般低乙個等級

thread_priority_highest 比一般高2個等級

thread_priority_idle

thread_priority_lowest 比一般低2個等級

thread_priority_normal 一般等級

thread_priority_time_critical

getcurrentthread()得到當前執行緒的控制代碼,但是它是乙個偽控制代碼,也就是說在程序控制代碼表裡是不存在的,所以也不用呼叫closehandle()來釋放。如果當轉化到核心控制代碼(也就是存在在程序控制代碼表中),呼叫duplicatehandle()來進行轉化。這時需要呼叫closehandle()來釋放執行緒控制代碼了。  

另一種是呼叫   openthread()來建立,不過這只在win2000以後才支援。上面在9x下面都可以。

getcurrentthread

vb宣告

declare function getcurrentthread lib "kernel32" alias "getcurrentthread" () as long

說明獲取當前執行緒的乙個偽控制代碼

返回值long,當前執行緒的偽控制代碼

註解只要當前執行緒需要使用乙個執行緒控制代碼,就可以使用這個偽控制代碼(但在其他任務執行緒中都無效)。該控制代碼可以複製,但不可繼承。不必呼叫closehandle函式來關閉這個控制代碼

duplicatehandle

vb宣告

declare function duplicatehandle lib "kernel32" alias "duplicatehandle" (byval hsourceprocesshandle as long, byval hsourcehandle as long, byval htargetprocesshandle as long, lptargethandle as long, byval dwdesiredaccess as long, byval binherithandle as long, byval dwoptions as long) as long

說明 在指出乙個現有系統物件當前控制代碼的情況下,為那個物件建立乙個新控制代碼。當前控制代碼可能位於乙個不同的程序

返回值

long,非零表示成功,零表示失敗。會設定getlasterror

參數列

引數 型別及說明

hsourceprocesshandle long,擁有源控制代碼的那個程序的控制代碼。如源控制代碼從屬於當前程序,則使用getcurrentprocess

hsourcehandle long,指定物件的現有控制代碼。

htargetprocesshandle long,即將擁有新物件控制代碼的乙個程序的控制代碼。如源控制代碼從屬於當前程序,則使用getcurrentprocess

lptargethandle long,指定用於裝載新控制代碼的乙個長整型變數

dwdesiredaccess long,新控制代碼要求的安全訪問級別。如dwoptions已指定了duplicate_same_access,那麼忽略這裡的設定。可以進行的訪問由物件的型別決定,它們在不同系統物件的訪問常數表裡進行了總結

binherithandle long,如新控制代碼可由hsourceprocesshandle的子程序繼承,則為true

dwoptions long,下列常數的乙個或兩個:

duplicate_same_access 新控制代碼擁有與原始控制代碼相同的安全訪問特徵

duplicate_close_source 原始控制代碼已經關閉。即使發生錯誤。它也要關閉

註解 在乙個程序中,這個函式可根據位於不同程序內的現有控制代碼建立乙個新控制代碼。可以從這兩個程序中發出對這個函式的呼叫。程序必須提供process_dup_handle訪問許可權,否則函式執行不能成功

控制代碼可以重複的物件包括控制台、檔案(包括通訊裝置)、檔案對映、事件、可等待計時器、互斥體、管道、程序、登錄檔項、訊號機以及執行緒

執行緒優先順序的設定

執行緒的優先順序 1 10,10為最高端別,1為最低級別,5為預設級別 thread.min priority 最小優先順序 thread.max priority 最高優先順序 thread.norm priority 預設優先順序 設定優先順序 public class jointhread2 ...

Linux執行緒優先順序設定

本程式會讓系統失去i o響應,不建議去執行!include include include include include include void thr fun void arg if policy sched fifo else if policy sched other else if po...

56 設定執行緒優先順序

可以通過使用thread類中的setpriority方法設定執行緒的優先順序。setpriority 方法接收乙個int型別的引數,通過這個引數可以指定執行緒的優先順序,取值範圍是整數1 10,優先順序隨著數字的增大而增強。在thread類中封裝了三個int型別的數字 優先順序最低 public f...