【多线程-Join()方法】
来源:互联网 发布:当代网络小说家排行榜 编辑:程序博客网 时间:2024/05/16 14:12
一. 什么时候使用Join()方法:
当一个线程操作需要等待另一个线程执行完毕之后才能继续进行时,使用Join()方法。Join方法会等到使用该方法的线程结束后再执行下面的代码。
二. 使用:
比如这里我们要在subthread线程执行完毕,然后才能执行主线程:在下面代码中会出现主线程执行完了,subthread线程还在执行,与我们所要求的想反。
class Program { private static Thread subthread ; private static string name =""; static void Main(string[] args) { subthread = new Thread(new ThreadStart(GetShow)); subthread.Start(); //开启线程 Console.WriteLine("{0}后台线程", Thread.CurrentThread.Name+Thread.CurrentThread.IsBackground+",结束"); Console.WriteLine("姓名:" + name); } static void GetShow() { Console.WriteLine("输入姓名:"); name = Console.ReadLine(); } }
如果不用Join()方法,我们可能想到使用Sleep()方法休眠一下主线程:
static void Main(string[] args) { subthread = new Thread(new ThreadStart(GetShow)); subthread.Start(); //开启线程 Console.WriteLine("{0}后台线程", Thread.CurrentThread.Name+Thread.CurrentThread.IsBackground+",结束"); Thread.Sleep(3000); Console.WriteLine("姓名:" + name); }
我们让主线程休息三秒钟,这样我们执行子线程后,立即输入完信息,刚好子线程执行完毕,然后主线程的休息时间也过了,达到了上面的需求,但是通过这样的方式还是会有问题,不能确切的进行控制。所有我们使用Join进行控制:
static void Main(string[] args) { subthread = new Thread(new ThreadStart(GetShow)); subthread.Start(); //开启线程 Console.WriteLine("{0}后台线程", Thread.CurrentThread.Name+Thread.CurrentThread.IsBackground+",结束"); subthread.Join();//等待>当subthread线程执行完毕之后,才执行下面的语句 Console.WriteLine("姓名:" + name); }Join()方法可以用于简单线程项目的线程同步。
1 0
- java多线程-join方法
- 多线程之Join方法
- 多线程 -- join()方法
- 多线程中的join方法
- 多线程(join方法)
- 【多线程-Join()方法】
- 多线程之join方法
- 多线程的join()方法
- 多线程中的Join()方法
- 多线程的join方法
- 多线程join方法解析
- Java 多线程join方法
- java多线程join方法
- C#多线程JOIN方法初探
- 黑马程序员---多线程join()方法
- C#多线程JOIN方法初探
- java多线程中join()方法
- java多线程 中的join方法
- 1、asp.net mvc第一章 搭建mvc平台
- 自定义控件
- Unity 小案例 加载新场景时数据持久化简单存储
- Ubuntu虚拟机安装
- 使用C#写入并保存为*.txt和读取数据
- 【多线程-Join()方法】
- WPF 动画按照path路线移动完整
- 一般使用SDWebImage 进行图片的显示和缓存,一般缓存的内容比较多了就需要进行清空缓存
- python基于dlib的face landmarks
- android用户拒绝权限
- tableView 用法细节
- ListView与ScrollView冲突解决方法
- MTK6735 添加电池曲线
- 因为不小心点击Disable WorkSpace Resolution将Maven项目转化成了一般项目工程,恢复成Maven工程解决办法