【转】.NET多线程编程(8)—— Thread类的Join()思路

     [介绍说明:刚接触多线程时弄不明白Join作用查阅了 3本书都不明不白后来经过自己番试验终于弄清了Join本质大家看看我这种写法是否易懂是否真写出了Join本质多提宝贵意见]
  Thread类Join思路方法能够将两个交替执行线程合并为顺序执行线程比如在线程B中了线程AJoin思路方法
        线程A将插入线程B的前直到线程A执行完毕后才会继续执行线程B
  试试:线程插入
  //C#初学课堂
    //注意添加命名空间
    using .Threading;
     void Main( args)
    {
      //线程A
      Thread ThreadA = Thread(delegate
      {
        for ( i = 0; i <= 100000000; i)
        {
           (i % 1000000 0)
          {
            Console.Write('A');
          }
        }
      });
      //线程B
      Thread ThreadB = Thread(delegate
      {       
        for ( i = 0; i <= 50000000; i)
        {
           (i % 1000000 0)
          {
            Console.Write('B');
          }
        }
        //在这里插入线程A
        ThreadA.Join;
        for ( i = 0; i <= 50000000; i)
        {
           (i % 1000000 0)
          {
            Console.Write('b');
          }
        }
      });
      //启动线程
      ThreadA.Start;
      ThreadB.Start;
    }
  运行结果如下你能分析清楚为什么吗?
Join思路方法" />
  由运行结果可以看出开始两个线程交替进行当线程B执行到语句“ThreadA.Join”时线程A被插入到线程B的前两个线程合并到起变为顺序执行直到执行完线程A中所有语句才去执行线程B中剩余语句   
       换句话说当我们在线程B中ThreadA.Join时该思路方法只有在线程ThreadA执行完毕的后才会返回Join还可以接受个表示毫秒数参数当达到指定时间后如果线程A还没运行完毕那么Join将返回这时线程A和线程B再次处于交替运行状态中
 

posted on 2010-04-02 16:47  王丹小筑  阅读(241)  评论(0)    收藏  举报

导航