C#和C++不一样,只要有线程没有退出,整个进程就不会退出,所以,你首先需要检查所有的线程是否正常退出。如果都退出了再检查SOCKET相关的东西,不过按照你的说法,监听线程倒不像有问题的样子。