结束监听线程,程序就假死,该如何解决

结束监听线程,程序就假死
如题:
socket中,多线程,其实开一个AcceptThread线程专门listen   和Accept,
当要结束时,AcceptThread.Terminal;然后再AcceptThread.free;
就在调用Free方法时程序就挂起,
请问为什么?

------解决方案--------------------
最好先逐一断开当前正在进行的连接,再Terminal和free;