private bool flag;if(flag)
{
    ......
}我晕!这些代码是足以说明csdn上很令人担忧的问题了。

解决方案 »

  1.   

     t是全局变量吧?创建线程钱先判断t是否等于null如果不等于null,再判断是否在运行,如果等于null或者不再运行,才创建新线程,
      

  2.   

    1.可以从线程层面进行监视,创建的时候,自己统计并且设计限制。
    2.从系统层面,系统提供了计数器,计数器有很多种,也包含PCB内的线程计数器,可以从系统层面抛出异常,阻止创建线程。当然这样写会麻烦一些。
      

  3.   

    我最先想到的也是这个方法,但是后面发现这个方法不好使。在我用到有一个启动和停止按键时,就出现了我问题中的问题了。t.Abort();根本没法结束所有运行过的线程。
      

  4.   


    根据这个思路,我想了半天弄了个这样的方法,行了,但是挻麻烦的,不知道有没有好的办法List<Thread> ThreadList = new List<Thread>();//创建线程
    t = new Thread(new ThreadStart(exe));
    t.IsBackground = true;
    if(ThreadList.Count == 0) Add(t);
    foreach (Thread Thread in ThreadList)
    {
    Thread.Start();
    }
    //停止线程
    foreach (Thread Thread in ThreadList)
    {
    Thread.Abort();
    }还有比这更好用的方法吗?