C#多线程的Join()方法

 更新时间:2022年04月20日 08:37:51   作者:農碼一生  
这篇文章介绍了C#多线程的Join()方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、简介

Join方法主要是用来阻塞调用线程,直到某个线程终止或经过了指定时间为止。官方的解释比较乏味,通俗的说就是创建一个子线程,给它加了这个方法,其它线程就会暂停执行,直到这个线程执行完为止才去执行(包括主线程)。

二、代码

class Program
    {
        static void Main(string[] args)
        {
            Thread threadA = new Thread(ThreadMethod);      
            threadA.Name = "線程A";
            Thread threadB = new Thread(ThreadMethod);      
            threadB.Name = "線程B";
            threadA.Start();       
            //threadA.Join();      
            threadB.Start();       
            //threadB.Join();

            for (int i = 1; i <=3; i++)
            {
                Console.WriteLine("我是:主線程,我循環{1}次", Thread.CurrentThread.Name, i);
                Thread.Sleep(300);          //休眠300毫秒                                                
            }
            Console.ReadKey();
        }
        public static void ThreadMethod(object parameter)
        {
            for (int i = 1; i <=3; i++)
            {
                Console.WriteLine("我是:{0},我循環{1}次", Thread.CurrentThread.Name, i);
                Thread.Sleep(300);         //休眠300毫秒              
            }
        }
    }

三、运行结果

因为线程之间的执行是随机的,所有执行结果和我们想象的一样,杂乱无章!但是说明他们是同时执行的。

现在我们把代码中的 ThreadA.join()和ThreadB.join()方法注释取消,首先程序中有三个线程,ThreadA、ThreadB和主线程,首先主线程先阻塞,然后线程ThreadB阻塞,ThreadA先执行,执行完毕以后ThreadB接着执行,最后才是主线程执行。

到此这篇关于C#多线程Join()方法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解如何在C#中循环访问目录树

    详解如何在C#中循环访问目录树

    在C#中,访问文件系统是常见的需求之一,有时我们需要遍历目录树以执行某些操作,例如搜索文件、计算目录大小或执行批量处理,本文将详细介绍如何在C#中循环访问目录树,并提供一个完整的示例,需要的朋友可以参考下
    2024-08-08
  • C# 创建报表过程详解

    C# 创建报表过程详解

    本文给大家介绍的是使用vs2012 c#创建报表的全部过程的记录,十分的详细,有需要的小伙伴可以参考下。
    2015-06-06
  • C#用RabbitMQ实现消息订阅与发布

    C#用RabbitMQ实现消息订阅与发布

    在消息队列模型中,如何将消息广播到所有的消费者,这种模式成为“发布/订阅”。本文主要以一个简单的小例子,简述通过fanout交换机,实现消息的发布与订阅,仅供学习分享使用,如有不足之处,还请指正。
    2021-05-05
  • C#实现无损压缩图片代码示例

    C#实现无损压缩图片代码示例

    这篇文章介绍了C#实现无损压缩图片的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • c#设计模式之单例模式的实现方式

    c#设计模式之单例模式的实现方式

    这篇文章主要给大家介绍了关于c#设计模式之单例模式的实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者使用c#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11
  • C#实现Dictionary字典赋值的方法

    C#实现Dictionary字典赋值的方法

    本文主要介绍了C#实现Dictionary字典赋值的方法,如同java中的Hasttable,C#里面有Dictionary,可以实现很高效的键值对操作。感兴趣的可以了解一下
    2021-05-05
  • 详解C#中三个关键字params,Ref,out

    详解C#中三个关键字params,Ref,out

    本文主要讨论params关键字,ref关键字,out关键字。非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-05-05
  • C#中循环语句:while、for、foreach的使用

    C#中循环语句:while、for、foreach的使用

    本篇文章主要介绍了C#中的三种循环语句(while、for、foreach)的实现方式,需要的朋友可以参考下
    2015-07-07
  • Unity实现鼠标双击与长按的检测

    Unity实现鼠标双击与长按的检测

    这篇文章主要为大家详细介绍了Unity实现鼠标双击与长按的检测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • C#端口扫描器的编写方法

    C#端口扫描器的编写方法

    这篇文章主要为大家详细介绍了C#端口扫描器的编写方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07

最新评论