鍍金池/ 教程/ C#/ C#線程示例:優(yōu)先級
C#屬性(Properties)
C#與Java比較
C#方法
C#枚舉
C#關鍵字
C# StreamReader類
C#不安全代碼
C#文件(I/O)
C#匿名方法
C#線程同步
C# Thread類
C#主線程
C#數(shù)據(jù)類型
C# FileStream類
C#預處理指令
C#繼承
C#循環(huán)
C#決策結構
C#集合
C#反射
C#類型轉換
C#泛型
C# StringReader類
C#歷史
C#運算符重載
C#屬性
C#線程實例:Sleep()方法
C#線程示例:優(yōu)先級
C#線程實例:Join()方法
C# BinaryReader類
C#類
C#索引器
C# BinaryWriter類
C#序列化
C#常量和文字
C#程序結構
C#封裝
C#事件
C#可空類型(nullable)
C#基本語法
C#異常處理
C#教程
C#接口
C# System.IO命名空間
C#線程命名實例
C# StringWriter類
C#線程實例
C#數(shù)組
C#正則表達式
C#命名空間
C#反序列化
C#與C++比較
C# TextWriter類
C#多線程
C#字符串
C#是什么?
C#變量
C# FileInfo類
C#線程實例:Abort()方法
C#結構體
C#運算符
C#入門程序
C#多線程生命周期
C# TextReader類
C# DirectoryInfo類
C#委托

C#線程示例:優(yōu)先級

我們來看下面的一個例子,演示如何改變線程的優(yōu)先級。高優(yōu)先級線程優(yōu)先執(zhí)行。但是不能完全保證,因為線程是高度依賴系統(tǒng)的。它只提高了優(yōu)先級較高的線程在低優(yōu)先級線程之前執(zhí)行的機會。

using System;
using System.Threading;
public class MyThread
{
    public void Thread1()
    {
        for(int i=0; i<3; i++)
        {
            Thread t = Thread.CurrentThread;
            Console.WriteLine(t.Name + " is running");
        }


    }
}
public class ThreadExample
{
    public static void Main()
    {
        MyThread mt = new MyThread();
        Thread t1 = new Thread(new ThreadStart(mt.Thread1));
        Thread t2 = new Thread(new ThreadStart(mt.Thread1));
        Thread t3 = new Thread(new ThreadStart(mt.Thread1));
        t1.Name = "Highest-Thread ";
        t2.Name = "Normal-Thread ";
        t3.Name = "Lowest-Thread ";
        t1.Priority = ThreadPriority.Highest;
        t2.Priority = ThreadPriority.Normal;
        t3.Priority = ThreadPriority.Lowest;

        t1.Start();
        t2.Start();
        t3.Start();
    }
}

輸出是不可預測的,因為線程系統(tǒng)依賴性高。它可以遵循任何算法搶先或非搶占式來執(zhí)行。

執(zhí)行上面示例代碼,得到以下結果 -

Highest-Thread  is running
Normal-Thread  is running
Normal-Thread  is running
Normal-Thread  is running
Lowest-Thread  is running
Lowest-Thread  is running
Lowest-Thread  is running
Highest-Thread  is running
Highest-Thread  is running

上一篇:C# BinaryReader類下一篇:C#程序結構