Funcția setthreadpriority

de bază 15 pentru procesele IDLE_PRIORITY_CLASS. BELOW_NORMAL_PRIORITY_CLASS. NORMAL_PRIORITY_CLASS. ABOVE_NORMAL_PRIORITY_CLASS sau HIGH_PRIORITY_CLASS și nivelul de prioritate al bazei 31 pentru procesele REALTIME_PRIORITY_CLASS.







Dacă funcția este reușită, valoarea valorii returnate nu este zero.

Dacă funcția nu reușește cu o eroare, valoarea valorii returnate este zero. Pentru a obține informații suplimentare despre erori, sunați la GetLastError.

Fiecare fir are un nivel de prioritate de bază, definit de valoarea de prioritate a firului și de clasa de prioritate a procesului său. Sistemul utilizează nivelul de prioritate de bază al tuturor firelor executabile pentru a determina ce fir primește următorul cuantum al procesorului. Firele stabilesc ordinea serviciului într-o manieră ciclică la fiecare nivel de prioritate și numai atunci când nu există fire executabile la un nivel superior, dispecerizarea curge la un nivel inferior.

Funcția SetThreadPriority permite instalarea fluxului de strat de mijloc în raport cu clasa de prioritate prioritatea procesului său. De exemplu, atunci când setarea THREAD_PRIORITY_HIGHEST apel SetThreadPriority pentru IDLE_PRIORITY_CLASS flux de proces prioritate debitului de referință este setat la 6. Pentru un tabel care arată nivelurile de prioritate de bază pentru fiecare combinație de clasă de prioritate și prioritatea fluxului de valori se referă la prioritățile serviciului articol.







Pentru procesele IDLE_PRIORITY_CLASS. BELOW_NORMAL_PRIORITY_CLASS. NORMAL_PRIORITY_CLASS. ABOVE_NORMAL_PRIORITY_CLASS și HIGH_PRIORITY_CLASS. sistemul crește dinamic (forțând) nivelul de prioritate al debitului atunci când apar evenimente care sunt importante pentru flux. Procesele REALTIME_PRIORITY_CLASS nu primesc forțarea dinamică.

Toate firele sunt inițial începute ca THREAD_PRIORITY_NORMAL. Utilizați funcțiile GetPriorityClass și SetPriorityClass. Pentru a primi și seta clasa de prioritate a procesului. Utilizați funcția GetThreadPriority. pentru a obține valoarea priorității fluxului.

Utilizați clasa de prioritate a procesului pentru a face distincția între programele de aplicație care sunt critice în timp și cele care necesită ordine de întreținere normală sau cu prioritate mai mică. Utilizați valorile prioritare ale fluxului pentru a distinge între prioritățile relative ale sarcinilor din proces. De exemplu, un fir care procesează datele de intrare pentru o fereastră poate avea un nivel de prioritate mai mare decât un fir care efectuează calcule intensive pentru CPU.

Atunci când gestionați prioritățile, fiți foarte atenți pentru a vă asigura că un fir cu prioritate ridicată nu absorb tot timpul disponibil al procesorului. Un fir cu un nivel de prioritate mai mare de 11 împiedică funcționarea normală a sistemului de operare. Utilizarea REALTIME_PRIORITY_CLASS poate cauza ca buffer-urile de intrare / ieșire să nu se întoarcă la disc, să atârne mouse-ul și așa mai departe.







Articole similare

Trimiteți-le prietenilor: