ceSetThreadPriority设置线程优先级~!
ceSetThreadPriority
一直採用SetThreadPriority,結(jié)果今天發(fā)帖詢問線程時間問題,才突然頓悟。。。發(fā)現(xiàn)SetThreadPriority只設(shè)置248-255,也就是說就算是設(shè)為最高優(yōu)先級,頂多是248.。。。差好遠(yuǎn)呢。。。而ceSetThreadPriority的設(shè)置范圍是0-255,最高為0!!!我就說我的線程設(shè)置的優(yōu)先級怎么沒什么用。。。。。。NYYD。。。
?
初始化代碼中的關(guān)鍵 Win32 API 調(diào)用是對 CeSetThreadPriority 的調(diào)用。此函數(shù)接受兩個參數(shù)。第一個參數(shù)是線程句柄,第二個值介于 0-255 之間,用于描寫敘述所需的優(yōu)先級。選擇使用哪個線程優(yōu)先級很關(guān)鍵,而可以以圖表表現(xiàn)應(yīng)用程序優(yōu)先級的使用,也有助于確保適當(dāng)?shù)男阅堋?yōu)先級從 0 至 247 的線程(0 表示最高優(yōu)先級)是實時線程優(yōu)先級,須要調(diào)用 CeSetThreadPriority 來訪問。一般線程優(yōu)先級介于 248-255 之間,要使用 SetThreadPriority 進(jìn)行訪問。下表提供了 Windows CE .NET 標(biāo)準(zhǔn)優(yōu)先級實現(xiàn)的高速指南。
表 3:實時線程優(yōu)先級:CeSetThreadPriority
| 0-19 | 開放 - 高于驅(qū)動程序的實時 |
| 20 | Permedia 垂直折返 |
| 21-98 | 開放 - 高于驅(qū)動程序的實時 |
| 99 | 電源管理恢復(fù)線程 |
| 100-108 | USB OHCI UHCI、串行 |
| 109-129 | Irsir1、NDIS、觸摸板 |
| 130 | KITL |
| 131 | VMini |
| 132 | CxPort |
| 133-144 | 開放 - 設(shè)備驅(qū)動程序 |
| 145 | PS2 鍵盤 |
| 146-147 | 開放 - 設(shè)備驅(qū)動程序 |
| 148 | IRComm |
| 149 | 開放 - 設(shè)備驅(qū)動程序 |
| 150 | TAPI |
| 151-152 | 開放 - 設(shè)備驅(qū)動程序 |
| 153-247 | 開放 - 低于驅(qū)動程序的實時 |
表 4:一般線程優(yōu)先級:SetThreadPriority
| 248 | 電源管理 |
| 249 | WaveDev、TVIA5000、鼠標(biāo)、PnP、電源 |
| 250 | WaveAPI |
| 251 | 電源管理器電池線程 |
| 252-255 | 開放 |
一般來說,最先須要決定的是要確定關(guān)鍵線程是否須要驅(qū)動程序。假設(shè)關(guān)鍵線程須要驅(qū)動程序才干正常工作,而將它的優(yōu)先級設(shè)定為高于驅(qū)動程序的優(yōu)先級,則非常難獲得好的性能。總之,時間關(guān)鍵型應(yīng)用程序須要放在“高于驅(qū)動程序類別的實時”類別中,優(yōu)先級范圍為 0-98。
轉(zhuǎn)載于:https://www.cnblogs.com/bhlsheji/p/4368167.html
總結(jié)
以上是生活随笔為你收集整理的ceSetThreadPriority设置线程优先级~!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。