情况描述:
    在程序中开辟了嵌套线进程。关闭程序时已经使用:
          if (mThreadReceive != null)
            {                mThreadReceive.Abort();
            }          if (mThreadListen != null)
            {
                mThreadListen.Abort();
            }          if (tcpL != null)
            {
                tcpL.Stop();
            }          Application.ExitThread();
          Application.Exit();但有时候,程序关掉了,但Windows任务管理器中的该进程还存在。

解决方案 »

  1.   

    Abort并不能保证线程会被终结。如果一个线程一直处于阻塞状态的话,Abort是无法终结它的。
      

  2.   

    那是因为程序还有资源无法释放(退出线程本身也可以看作是释放资源)简单的做法你可以在程序最后加上using System.Diagnostics;Process.GetCurrentProcess().Kill();但是建议你最好还是检查一下代码,确保程序退出时可以释放所有的资源,停止所有的县城
      

  3.   

    将自己创建的线程标记为后台线程,这样在进程结束时这些线程会自动终止,但你应该看一下是什么操作导致线程被阻塞。并优化你的代码。减少这种情况的发生。标记为后台线程的属性是:mThreadReceive.IsBackground =true;
      

  4.   

    谢谢大家,特别感谢Dionix,用它的办法把问题解决了。阻塞是客户端嵌入式机器发送数据而造成的。这个不好处理。