日期:2014-05-17  浏览次数:21237 次

如何有效释放Socket进程资源?
本帖最后由 chenjun86323 于 2012-12-15 22:19:48 编辑
多个客户端与一个服务端通信

服务端启动后使用一个监听线程SocketListenThread监听客户端连接,每当有客户端发出连接请求后激活一个与客户端交换数据的线程ServerThread,代码如下:
Thread ThreadClientAccept = new Thread(new ThreadStart(ServerThread));
ThreadClientAccept.IsBackground = true;
ThreadClientAccept.Start();

在ServerThread内没有死循环,差不多是顺序结构执行到末尾,线程执行到末尾后就不再使用了,末尾加了句Thread.CurrentThread.Abort(); 

因为服务端要一直常开,看论坛上说abort方法无法真正释放线程资源,不知道是否正确?IsBackground = true能否有效释放线程?该如何确保线程资源被释放掉?谢谢
------解决方案--------------------
Abort就可以了。