C# Priority:多线程优先级设置

  • 内容
  • 评论
  • 相关

在《C# ThreadStart》一节中我们通过两个线程分别打印奇数和偶数,但是每次打印出来的结果是不同的。

如果需要控制输出值的顺序,可以通过对线程优先级的设置以及线程调度来实现。

在 C# 中线程的优先级使用线程的 Priority 属性设置即可,默认的优先级是 Normal。

在设置优先级后,优先级高的线程将优先执行。

优先级的值通过 ThreadPriority 枚举类型来设置,从低到高分别为Lowest、BelowNormal、Normal、AboveNormal、Highest。

【实例 1】通过设置线程的优先级来控制输出奇数和偶数的线程,为了看出设置线程优先级的效果将输出 1〜100 中的奇数和 0〜100 中的偶数。

根据题目要求,实现的代码如下。

class Program
{
    static void Main(string[] args)
    {
        ThreadStart ts1 = new ThreadStart(PrintEven);
        Thread t1 = new Thread(ts1);
        //设置打印偶数线程的优先级
        t1.Priority = ThreadPriority.Lowest;
        ThreadStart ts2 = new ThreadStart(PrintOdd);
        Thread t2 = new Thread(ts2);
        //设置打印奇数线程的优先级
        t2.Priority = ThreadPriority.Highest;
        t1.Start();
        t2.Start();
    }
    //打印1~100中的奇数
    public static void PrintOdd()
    {
        for(int i = 1; i <= 100; i = i + 2)
        {
            Console.WriteLine(i);
        }
    }
    //打印0~100中的偶数
    public static void PrintEven()
    {
        for(int i = 0; i <= 100; i = i + 2)
        {
            Console.WriteLine(i);
        }
    }
}

运行该程序,效果如下图所示。

设置优先级后输出奇数偶数的部分值

本文标题:C# Priority:多线程优先级设置

本文地址:http://www.hosteonscn.com/4936.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注