如果需要,在什么条件下才执行Abort()?另外一个问题:为了什么开10个线程并发速度还可以,开了300个线程并发,感觉很慢,是不是被锁了?怎么解决这个问题?

解决方案 »

  1.   

    经常会有
    未处理的“System.AppDomainUnloadedException”类型的异常出现在 未知模块 中。其他信息: 试图访问已卸载的 Appdomain。这个是什么问题哦,怎么解决?
      

  2.   


    还会有其他信息: 线程正被中止。
    线程 '<无名称>' (0x19e4) 已退出,返回值为 0 (0x0)。
    未处理的“System.Threading.ThreadAbortException”类型的异常出现在 未知模块 中。
      

  3.   

    线程运行完成可以终止.当需要强迫它终止时或线程遇到故障死锁等情况时,要用Abort()和Join()方法终止它们.
    参考:
    (七)线程--管理线程(使线程中止,暂停,挂起等)(示例下载) 
    http://blog.csdn.net/chengking/archive/2005/11/30/540646.aspx更多线程知识点:
    http://blog.csdn.net/ChengKing/category/160892.aspx
      

  4.   

    开300个线程...会占了好多管理线程的CPU时间
      

  5.   

    线程运行完后会自己终止,但如果你要强制终止的话就得用到abort了
      

  6.   

    一般来说,不需要使用Abort().
      

  7.   

    Abort()就是强行引发异常终止线程(不想让他运行了就用)
    线程多了肯定慢
    比如你操作系统中有10个线程那么过10个时间片他就会轮流执行一次,如果100个那么只能过100个时间片才能轮流一次,每个线程占用CPU的时间才是前面的1/10
      

  8.   

    无论是那种语言,都尽量不要显式的使用abort。最好的模式是:
    在把线程体放在while(flag){...}中,当要中止这个线程时,把flag设为false就好了,线程会自然退出