一个线程,运行完成之后线程状态处于stopped状态。
此时无法调用start()方法启动线程、该用什么方法启动线程呢?
如果继续new一个线程的话会导致内存占用不断增加,到最好好像程序就崩溃了。。

解决方案 »

  1.   

    不行的。。估计LZ对线程这块理解还不够好。。线程进用stoped状态。。会被销毁。。要想再次启动线程。只能得新建一个新的线程
      

  2.   

    挂起,重新启动
    Thread t1 = new Thread(new ThreadStart(Function1));
    t1.Start();
      

  3.   

    用BackgroudWorker
    可重复开始
                BackgroundWorker bw;
                if(!bw.IsBusy)
                {
                    bw.RunWorkerAsync();
                }
      

  4.   

    BackgroudWorker控件和timer控件其实都是不错的选择!
      

  5.   

    那大家看下这段代码有什么问题不??
    为什么程序运行一段时间就崩溃了呢??
    所谓崩溃就是,系统托盘图标不见了。线程函数执行的东西都不执行了。。private void timer1_Tick(object sender, EventArgs e)
            {//定时启动线程.
                
                count++;
                if (count == 1000)
                {
                    count = 0;
                    查看短信发送记录ToolStripMenuItem_Click(null, null);
                    this.WindowState = FormWindowState.Minimized;
                    return;
                }
                if (sms_thread == null || sms_thread.ThreadState == ThreadState.Stopped)
                {
                    try
                    {
                        if (sms_thread != null)
                            sms_thread.Abort();
                        sms_thread = new Thread(SmsAutoSender.ThreadRun);
                        sms_thread.Start();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(sms_thread.ThreadState.ToString() + ex.Message);
                    }
                }
                else
                    return;
            }
      

  6.   

    要想停止进程后重启启动只能这样
    Thread t1 = new Thread(new ThreadStart(Function1));
    t1.Start();t1.abort();
    我刚做的一个项目就是这样的
      

  7.   

    我也遇到类似的问题,就是当我程序遇到bug时候,我想在catch 里捕获到错误的同时,重新开启程序,关闭原来第一个程序,然后根据两个不同的进程ID,结束掉第一个遇到bug的程序。但是当我第二次重新启动程序的时候就会报错,说什么没有与此进程关联。这是怎么回事呀?
      

  8.   

    判断是否STOP了,STOP了就重新NEW个嘛
      

  9.   

    会不断增加内存吗?我的这么不会啊?我的timer每3秒都会重新NEW一个线程,运行一天都没事。