我用C#写的一个程序如下:
                        Thread sr;
      ThreadStart ts;
while(ThreadNow<MaxThread)
{
ts=new ThreadStart(Read);
sr=new Thread(ts);
sr.Start();
ThreadNow++;
}
可以这么写不?要怎么强行结束这个线程呢,我是设了另一个线程来调用这个但是即使那个线程Abort了,这个还是运行,就算把窗体关了也还有,是什么原因呢,有好的方法,各位大夏介绍一下啊

解决方案 »

  1.   

    必须把线程设置为Thread.IsBackground才能用Abort等方法终止线程比如sr.IsBackground = true;sr.Abort();
      

  2.   

    MSDN上说Abort方法不一定能停止一个线程。你可以设一个标志量flag,当要线程停止时,修改标志位,在进程里检测标志位,return掉就可以了!
      

  3.   

    我终止线程的方法是:
    thread.Abort();
    thread.Join();
      

  4.   

    线程很多可以考虑用线程池!ThreadPool