C#使用ThreadPriority設(shè)置線程優(yōu)先級
一、簡介
如果在應(yīng)用程序中有多個線程在運行,但一些線程比另一些線程重要,這種情況下可以在一個進程中為不同的線程指定不同的優(yōu)先級。線程的優(yōu)先級可以通過Thread類Priority屬性設(shè)置,Priority屬性是一個ThreadPriority型枚舉,列舉了5個優(yōu)先等級:AboveNormal、BelowNormal、Highest、Lowest、Normal。公共語言運行庫默認(rèn)是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";//默認(rèn)為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前面。當(dāng)有多個線程同時處于可執(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#?Winform消息通知之系統(tǒng)本地通知local?toast?notification
這篇文章主要為大家介紹了C#?Winform消息通知之系統(tǒng)本地通知local?toast?notification使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
C#使用protobuf-net進行序列化的詳細(xì)操作
本文帶領(lǐng)大家學(xué)習(xí)C#中protobuf-net工具的另一種使用體驗,這個工具的使用體驗屬于Code-First模式,先定義類型,并使用注解進行標(biāo)記,不需要先編寫.proto文件,感興趣的朋友跟隨小編一起看看吧2021-11-11
C# Fiddler插件實現(xiàn)網(wǎng)站離線瀏覽功能
本文主要介紹了C# Fiddler插件實現(xiàn)網(wǎng)站離線瀏覽功能的原理與方法。具有很好的參考價值,下面跟著小編一起來看下吧2017-02-02

