Thread记录

项目用到了线程 所以写出来留作以后复习
线程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         }

运行结果

 

 

 

 

posted @ 2013-08-04 20:12  @specter  阅读(208)  评论(0编辑  收藏  举报