zoukankan      html  css  js  c++  java
  • Thread.Join(int millisecondsTimeout)

        Join 就是加入的意思,也就是说新创建的线程加入到进程中,并马上执行。

        看下面这段代码

     1             Console.WriteLine("start");
     2             Thread myTask = new Thread(() =>
     3             {
     4                 for (int i = 0; i < 10; i++)
     5                 {
     6                     Console.WriteLine("******" + i + "*****");
     7                     Thread.Sleep(1000);
     8                 }
     9             });
    10             myTask.Start();
    11             myTask.Join();
    12             Console.WriteLine("stop");

    效果图如下

    在实际使用的时候会使用到jion的另一个重载方法

    public bool Join(int millisecondsTimeout)

    当使用这个方法设置超时时间的时候可以在超时时跳出线程,回到原来的线程。看下面代码测试

     1 Console.WriteLine("start");
     2             Thread myTask = new Thread(() =>
     3             {
     4                 for (int i = 0; i < 10; i++)
     5                 {
     6                     Console.WriteLine("******" + i + "*****");
     7                     Thread.Sleep(1000);
     8                 }
     9             });
    10             myTask.Start();
    11             myTask.Join();
    12             if (!myTask.Join(3 * 1000))
    13             {
    14                 Console.WriteLine("time out");15             }

    效果如下:

    这个时候time out 就会在3秒时执行,但是从上面的结果上可以看到,myTask这个线程并没有结束,还是继续执行着,所以,当使用这个函数的时候,需要注意终止掉jion的线程,代码如下

     1 Console.WriteLine("start");
     2             Thread myTask = new Thread(() =>
     3             {
     4                 for (int i = 0; i < 10; i++)
     5                 {
     6                     Console.WriteLine("******" + i + "*****");
     7                     Thread.Sleep(1000);
     8                 }
     9             });
    10             myTask.Start();
    11             myTask.Join();
    12             //Console.WriteLine("stop");
    13             if (!myTask.Join(3 * 1000))
    14             {
    15                 Console.WriteLine("time out");
    16                 myTask.Abort();
    17             }

    最终结果如下

  • 相关阅读:
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
    助教学期总结
    第十六周助教总结
    C语言I博客作业11
    第十五周助教总结
    C语言I博客作业10
    第十四周助教总结
    C语言寒假大作战03
  • 原文地址:https://www.cnblogs.com/zuimengaitianya/p/9173449.html
Copyright © 2011-2022 走看看