C#使用ThreadPriority設(shè)置線程優(yōu)先級
一、簡介
如果在應(yīng)用程序中有多個線程在運行,但一些線程比另一些線程重要,這種情況下可以在一個進程中為不同的線程指定不同的優(yōu)先級。線程的優(yōu)先級可以通過Thread類Priority屬性設(shè)置,Priority屬性是一個ThreadPriority型枚舉,列舉了5個優(yōu)先等級:AboveNormal、BelowNormal、Highest、Lowest、Normal。公共語言運行庫默認是Normal類型的。
二、代碼
class Program
{
static void Main(string[] args)
{
Thread threadA = new Thread(ThreadMethod); //執(zhí)行的必須是無返回值的方法
threadA.Name = "A";
Thread threadB = new Thread(ThreadMethod);
threadB.Name = "B";
threadA.Priority = ThreadPriority.Highest;
threadB.Priority = ThreadPriority.BelowNormal;
threadB.Start();
threadA.Start();
Thread.CurrentThread.Name = "C";//默認為Normal
ThreadMethod(new object());
Console.ReadKey();
}
public static void ThreadMethod(object parameter)
{
for (int i = 1; i <= 500; i++)
{
Console.Write(Thread.CurrentThread.Name);
}
}
}三、運行結(jié)果
上面的代碼中有三個線程,threadA,threadB和主線程,threadA優(yōu)先級最高,threadB優(yōu)先級最低。這一點從運行結(jié)果中也可以看出,線程B偶爾會出現(xiàn)在主線程和線程A前面。當有多個線程同時處于可執(zhí)行狀態(tài),系統(tǒng)優(yōu)先執(zhí)行優(yōu)先級較高的線程,但這只意味著優(yōu)先級較高的線程占有更多的CPU時間,并不意味著一定要先執(zhí)行完優(yōu)先級較高的線程,才會執(zhí)行優(yōu)先級較低的線程。

優(yōu)先級越高表示CPU分配給該線程的時間片越多,執(zhí)行時間就多
優(yōu)先級越低表示CPU分配給該線程的時間片越少,執(zhí)行時間就少
到此這篇關(guān)于C#使用ThreadPriority設(shè)置線程優(yōu)先級的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#聯(lián)合VisionPro實現(xiàn)TCP/IP通信詳解
TCP/IP(傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)是一組用于在網(wǎng)絡(luò)上進行通信的通信協(xié)議,本文主要為大家詳細介紹了C#如何聯(lián)合VisionPro實現(xiàn)TCP/IP通信,希望對大家有所幫助2024-02-02
Unity中協(xié)程IEnumerator的使用方法介紹詳解
本文主要介紹了Unity中協(xié)程IEnumerator的使用方法介紹詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
C#實現(xiàn)的微信網(wǎng)頁授權(quán)操作邏輯封裝示例
這篇文章主要介紹了C#實現(xiàn)的微信網(wǎng)頁授權(quán)操作邏輯封裝,分析了微信網(wǎng)頁授權(quán)操作的原理、步驟并給出了C#實現(xiàn)的網(wǎng)頁授權(quán)操作邏輯封裝類,需要的朋友可以參考下2016-10-10

