Thread[] s=new Thread[10];
开启线程
        private void button1_Click(object sender, EventArgs e)
        {
            int selIndex = this.listBox1.SelectedIndex;
            s[selIndex] = new Thread(new ParameterizedThreadStart(aas));            s[selIndex].Start(selIndex );
        }//结束线程
 private void button3_Click(object sender, EventArgs e)
        {
            int selIndex = this.listBox1.SelectedIndex;
            s[selIndex].Abort();
        }结束selIndex线程后,再点击启动线程也启动不了了。。怎么解决。。

解决方案 »

  1.   

    线程都结束了还怎么复活……
    如果你只是暂时暂停的就用阻止。
    或者循环休眠。
    或者直接重新New线程
      

  2.   

    你每次起的都是新线程s[selIndex] = new Thread(new ParameterizedThreadStart(aas));
    new
    什么叫复活呢?
      

  3.   

    private void button1_Click(object sender, EventArgs e)
      {
      int selIndex = this.listBox1.SelectedIndex;
      s[selIndex] = new Thread(new ParameterizedThreadStart(aas));  s[selIndex].Start(selIndex );
      }new Thread这里又new了呀。。
      

  4.   

    lz,Abort()方法:
    在调用此方法的线程上引发 System.Threading.ThreadAbortException,以开始终止此线程的过程。调用此方法通常会终止线程。
            
      

  5.   

    thread_loadlist = new Thread(new ThreadStart(forfast));
    不知道你的New方法是不是搞错了
      

  6.   

    lz这样子就等于重新再new一个线程出来了,而且还是abort()了的线程。
      

  7.   

    s[selIndex].Start(selIndex );你给一个int的参数给Start?
    我是没给Start参数过 
    一般线程方面 有些时候要的参数虽然看是object实际上必须是引用类型比如lock()
      

  8.   

    线程结束后(状态为Stopped)试下把它设为null,然后重新实例化(new,如果报错就略过此步)和Start
      

  9.   

    已经Aborted的Thread是不能再Start的。用Thread.Abort去终止一个线程是很不好的做法。
    当你使用多线程时,让线程自己去控制自己的所有资源,包括它的生命周期
      

  10.   

    new 是干啥用的楼主不是很明白?
      

  11.   

    一看到Tread头就大了,有严重的阴影了……  建议lz还是通过Deletegate起线程吧