首页 > 代码库 > 线程系列05,手动结束线程
线程系列05,手动结束线程
有时候,我们希望手动结束一个线程。比如说,当客户端满足某种条件,让线程就此结束。如何设计呢?
线程间肯定要共享数据,假设把共享数据默认值设置成true,客户端线程在满足某种条件时把共享数据设置成false。而另外一个线程,如果共享数据一直是true,它就一直执行程序,直到共享数据为false,该线程就结束。
class Program
{private static bool cancel = false;static void Main(string[] args){Thread t = new Thread(SayHello);
t.Start();Console.WriteLine("按回车键取消");
Console.ReadLine();cancel = true;
t.Join();Console.WriteLine("结束了");
Console.ReadKey();}static void SayHello(){while (!cancel)
{Console.WriteLine("线程#" + Thread.CurrentThread.ManagedThreadId + "还活着,Hello~");Thread.Sleep(1000);}}}
○ 2个线程共享类的静态字段
○ 当按回车键后,就把静态字段cancel设置成false
○ 当把cancel设置成false后,就不满足线程t的循环条件,线程t结束循环
○ t.Join()方法保证线程t执行完后,再执行客户端线程
线程系列包括:
线程系列01,前台线程,后台线程,线程同步
线程系列02,多个线程同时处理一个耗时较长的任务以节省时间
线程系列03,多线程共享数据,多线程不共享数据
线程系列04,传递数据给线程,线程命名,线程异常处理,线程池
线程系列05,手动结束线程
线程系列05,手动结束线程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。