本帖最后由 sola040515 于 2013-07-26 10:17:07 编辑

解决方案 »

  1.   

    我先dispose后在close,依然没效果
      

  2.   

    那你先确定一下,其它的线程是不是Form里面的功能代码打开的。 可能与Form无关。 Form是只有一个UI线程在运行吧。
      

  3.   

    单从线程数量上来分析是不够的,甚至可以说是错的
    backgroundworker内部一样使用的是Thread,只不过用的是托管的ThreadPool的后台线程线程都有ThreadState,当一个线程正常结束,它的状态就是ThreadState.Stopped
    使用Abort强制结束的就是ThreadState.Aborted
    在垃圾回收器真正回收这些线程之前,线程数是不会发生改变的。
    而具体什么时候回收是不确定的(和你的程序本身及垃圾回收器的配置都有关),非托管资源一定要显式释放未销毁不代表不销毁不回收。你可以用Spy++看一下那些线程的状态,只要线程已结束,你就不必去担心