.Net线程足迹(三)——IsAlive属性
2010-04-29 16:25
519 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace ThreadDemo { class Program { static void Main(string[] args) { string threadState; Thread t = new Thread(ThreadState.WorkerFunction); t.Start(); while (t.IsAlive) { Console.WriteLine("Still waiting.I'm going back to sleep."); Thread.Sleep(200); } threadState = t.ThreadState.ToString(); Console.WriteLine("ThreadState is "+threadState); Console.ReadLine(); } } public class ThreadState { public static void WorkerFunction() { string threadState; for (int i = 0; i < 10; i++) { if (i % 2 == 0) { threadState = Thread.CurrentThread.ThreadState.ToString(); Console.WriteLine("Worker:"+threadState); } } Console.WriteLine("Worker Function Complete"); } } }
输出:
Still waiting.I'm going back to sleep.
Worker:Running
Worker:Running
Worker:Running
Worker:Running
Worker:Running
Worker Function Complete
ThreadState is Stopped
Main()方法继续与新线程一起执行,因为处理器在这两者之间切换。然后,使用新建线程的IsAlive属性,确定线程是否还在执行。继续测试这个变量,当工作线程处于激活状态时,主线程将继续睡眠200毫秒,然后唤醒主线程,并测试工作线程是否仍处于激活状态。
相关文章推荐
- 线程start后,确定已经不再isAlive了,但是再次start会报错。
- .Net线程足迹(二) ——传递参数至线程
- C# 用IsAlive来确定线程结束时间
- 关于Thread.IsAlive属性
- 线程理解之经典,同时测试了isAlive的使用。
- 关于Thread.IsAlive属性
- Python线程isAlive方法
- C#多线程之Thread中Thread.IsAlive属性用法分析
- .NET中的后台线程--IsBackground属性
- java线程操作方法setName,getName,isAlive
- Thread的Thread.IsAlive属性
- java线程之isAlive方法,sleep方法,和getId方法
- Java并发04:Thread的基本方法(1)-Name、ThreadGroup、activeCount、isAlive、守护线程等
- thrd.isAlive();理解为:线程方法Run();还在进行。
- 关于Thread.IsAlive属性
- Linux创建线程的属性设置
- python线程对象的daemon属性
- .NET 根据下拉列表选择不同的值动态改变对应textbox的属性
- UNIX环境高级编程——线程属性之分离属性
- python 8-4 如何使用线程本地数据,threading.local函数可以创建线程本地数据空间,属性对每个线程独立存在