在线程a里面启动线程b 那么a是父线程而b是子线程
a要等待b结束才能结束

解决方案 »

  1.   

    在a线程启动b线程,我开始也认为b是a的子线程,但经测试,a线程结束了但b线程还在运行。
    如果是父子关系则b线程也会结束,我认为不是父子关系。
    using System;
    using System.Threading;namespace ConsoleApplication2
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class Class1
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    //
    // TODO: 在此处添加代码以启动应用程序
    // Thread t = new Thread(new ThreadStart(ThreadProc1));
    t.Start(); Console.ReadLine();
                t.Abort();

    Console.ReadLine();
    //Thread.CurrentThread.Abort();
    }
    private static void ThreadProc1()
    {

    Thread t = new Thread(new ThreadStart(ThreadProc2));
    t.Start(); int i = 0;
    while(true)
    {
    Thread.Sleep(1000);
    Console.Write("{0}:ThreadProc11\n",i);
    if(++i > 5000)
    break;
    }
    } private static void ThreadProc2()
    {
    int i = 0;
    while(true)
    {
    Thread.Sleep(1000);
    Console.Write("{0}:ThreadProc2\n",i);
    if(++i > 5000)
    break;
    }
    }
    }
    }
      

  2.   

    .....static void Main(string[] args)
    {
    .....
       Application.run("Thread_Name");
    }......
      

  3.   

    用同步信号量呀,去MSDN查查AutoResetEvent
      

  4.   

    不会,各是各的,各自运行完毕就结束。如果要实现你所谓的父子线程,创建者可以使用Join来等待被创建线程结束。
      

  5.   

    使线程a要等待b结束才能结束
    ==================================
    不是可以在b线程里挂起a线程,在b线程即将结束的时候再恢复a线程吗?
      

  6.   

    我在我的WIN程序里,在Closing事件中是这样写的
    this.myThread.Abort();
    if(this.myThread!=null)
    {
    this.myThread.Interrupt();
    this.myThread=null;
    }
    这样一关这个窗体,那么它开启的这个myThread线程就自动给关闭.
    如果你是放在类中的话,大可放在Dispose()事件中