winform程序中,如果用按钮触发一个新线程,进行一些耗时很长的工作,如果这期间在UI线程中调用了application.exit(),虽然窗口关闭了但是那个子线程还在运行,直到其自身结束。请问如何才能在退出时完全关闭所有的线程?多谢!

解决方案 »

  1.   

    tread.IsBackground = true;
    可以使线程在程序退出时被关闭,即使是死循环的。
      

  2.   

    Process.GetCurrentProcess().Kill();//关闭与其相关的所有线程
      

  3.   

    Thread t = new Thread(new ThreadStart(ThreadProc13));
                t.IsBackground = true;
                t.Start();
      

  4.   

    在子线程中加一个信号量。当你想退出的时候,将信号量置位,
    while(true)
    {
    if(eventwaithandle。wait(0,false))
    {
    break;
    }
    }