C# 第八章『多线程』◆第2节:线程的属性

        一、Thread.Name 属性

        获取或设置线程的名称。

语法格式如下:
public string Name { get; set; }
using System;
using System.Threading;

class Test
{
    static void Main()
    {
        Thread Nt1 = new Thread(new ThreadStart(Work.DoWork));
        if (Thread.CurrentThread.Name == null)
        {
            Thread.CurrentThread.Name = "MainThread";
        }
        else
        {
            Console.WriteLine("Unable to name a previously " + "named thread.");
        }
        Nt1.Start();
    }
}

class Work
{
    public static void DoWork()
    {
        Console.WriteLine("新的线程启动(静态方法)");
    }
}

         二、Thread.CurrentThread 属性

        获取当前正在运行的线程。

public static System.Threading.Thread CurrentThread { get; }

        三、线程的优先级

        线程的优先级指定一个线程相对于另一个线程的相对优先级,每个线程都有一个分配的优先级。在公共语言运行库内创建的线程最初被分配为Normal优先级,而在公共语言运行库快创建的线程,在进入公共语言运行库时将保留其先前的优先级。

        线程是根据其优先级而调度执行的,用于确定线程执行顺序的调度算法随操作系统的不同而不同。只要具有较高优先级的线程可以执行,具有较低优先级的线程就不会执行,直到在高优先级的程序不再有可执行的线程时,才会移动到下一个较低的优先级,并在该优先级上调度线程以执行。除此之外,当应用程序的用户界面在前台和后台之间切换时,操作系统可以动态调整线程的优先级。

        线程的优先级可以通过Thread类的Priority属性设置,获取或设置指示线程的调度优先级的值。Priority属性是一个ThreadPriority型枚举,列举了5个优先等级:AboveNormal、BelowNormal、Highest、Lowest、Normal。

public System.Threading.ThreadPriority Priority { get; set; }

public ThreadPriority Priority{get;set;}

        普通线程的优先级默认为Normal;

  • Highest:在具有任何其他优先级的线程之前,优先级最高。
  • AboveNormal:可以将Thread安排在具有Highest优先级线程之后,在Normal之前。
  • Normal:在AboveNormal之后,BelowNormal之前。默认值
  • BelowNormal:在Normal之后,Lowest之前。
  • Lowest:优先级最低。

        可以通过调用线程的Priority属性来获取和设置其优先级。Priority属性用来获取或设置一个值,该值指示线程的调度优先级。

using System;
using System.Threading;

class Test
{
    static void Main()
    {
        Thread Nt1 = new Thread(new ThreadStart(Work.DoWork1));
        Nt1.Priority = ThreadPriority.Lowest;
        Nt1.Start();

        Thread Nt2 = new Thread(new ThreadStart(Work.DoWork2));
        Nt2.Priority = ThreadPriority.Highest; ;
        Nt2.Start();
    }
}

class Work
{
    public static void DoWork1()
    {
        Console.WriteLine("1111111111");
    }
    public static void DoWork2()
    {
        Console.WriteLine("2222222222");
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值