错误-应用程序产生了一个无法处理的异常。[英] Error - Application has generated an exception that could not be handled

问题描述

你好,

我正在开发一个服务器应用程序.我创建了一个 Windows 应用程序并创建了一个 TCPListener
一直处于收听模式.当请求来自客户端时,它会为该客户端创建一个单独的线程.
来自不同客户端的所有请求都是相同的.

现在,我过去常常在我离开办公室时保持它运行.
今天看到这个异常消息

应用程序产生了无法处理的异常.

进程 ID = 0xf50 (3920),线程 ID = 0xefc (3836)

是什么原因导致出现这个异常?

请回复.

在此先感谢.

推荐答案

您犯了一个大错误:每个客户端一个线程.线程是昂贵的资源,客户端的数量是不可预测的.您不应该在运行时创建线程.最好在一开始就创建固定数量的线程并重新使用它们.对于 TCP 服务,您可以只添加两个网络线程,但不能少:一个用于接受新连接,一个用于与所有当前客户端一起工作.

有关更多详细信息,请阅读我过去的解决方案,其中我对此类设计进行了简要描述:来自同一端口号的多个客户端[^].

—SA

本文地址:https://www.itbaoku.cn/post/1394941.html