项目用到了线程 所以写出来留作以后复习
线程Thread类包含在System.Threading命名空间有关线程的操作主要包含在这个类中
现在总结一下Thread的常用方法和属性
Start([参数])//开始运行线程
Sleep(毫秒)//线程休眠
Join()//线程阻塞
Abort()//终止线程 在调用此方法的线程上引发ThreadAbortExcetion
Interrupt() //中断处于WaitSleepJoin线程状态的线程
CurrentContext//获取当前进程的上下文
IsAlive//获取一个值,该值表示当前线程的执行状态。如果此线程已启动并且尚未正常终止或中止,则为true,否则为false.
IsBackground//获取或设置一个值,该值批示某个线程是否为后台线程
IsThreadPoolThread//获取一个值,该值指示线程是否属于托管线程池
ManagedThreadId//获取或设置线程的惟一标识
Name//获取或设置线程的名称。
Priority//获取或设置一个值,该值指示线程的调度优先级
{
Highest优先级别最高,可以将线程安排在任何其他优先级的线程之前。
AboveNormal优先级别次高,可以将线程安排在Highest优先级别之后,在具有Normal优先级别之前。
Normal优先级别普通,可以将线程安排在AboveNormal优先级别之后,在具有BelowNorml优先级别之前。
BelowNormal优先级别次低,可以将线程安排在Normal优先级别之后,在具有Lowest优先级别之前。
Lowest优先级别最低,可以将线程安排在任何其它优先级的线程之后。
}
ThreadState//获取一个值,该值包含当前线程的状态。
现在让我们来看看实际的运行结果
1简单的创建线程
1 static void Main(string[] args) 2 { 3 Thread th = new Thread(show); 4 th.Name = "demo"; 5 //获取线程name 6 string name = th.Name; 7 //获取线程id 8 string id = th.ManagedThreadId.ToString(); 9 //获取是否线程池线程 10 bool pool = th.IsThreadPoolThread; 11 //获取是否后台线程 12 bool bg = th.IsBackground; 13 Console.WriteLine("线程id:" +id+" 线程name:" + name+" 后台:" + bg+" 线程池:" + pool); 14 //启动线程 15 th.Start("这是线程调用"); 16 //判断是否执行完毕 17 while (th.IsAlive) 18 { 19 Console.Write("*"); 20 Thread.Sleep(100); 21 } 22 Console.Read(); 23 } 24 //这里的参数只能是object类型的 25 static void show(object o) 26 { 27 //线程休眠1s 28 Thread.Sleep(1000); 29 30 Console.Write(o); 31 }
运行结果