我正在创建一个服务器/客户端风格的程序,它使用tcp连接。
现在,服务器类似于this,但它只会侦听,直到收到它的一个请求。我的问题在于它只监听,直到它收到一条消息,然后关闭。然而,更大的问题是滞后,它不会让我以任何方式与表单交互,直到它关闭连接。有没有办法让它“被动地”倾听,因为没有更好的词?我不希望它占用大量的cpu。
谢谢你的帮助!
这是在vb.net中。
发布于 2009-09-13 03:39:21
在Windows中,像按键、鼠标点击和移动等事件作为事件(消息)发送到专门处理它们的线程。如果该线程需要很长时间来处理一条消息(就像等待TCP请求进入),那么该线程就被称为“阻塞”,直到该任务完成,实质上阻塞了整个用户界面。
您希望设置一个独立于运行窗体的线程来处理TCP侦听。Vb.Net中的这个tutorial on threading应该会让您走上正确的道路。
发布于 2009-09-13 04:32:20
看一下TcpListener类,同时检查Pending方法所显示的代码。
你最好使用线程来处理这一切,因为你希望你的UI线程保持可用来保持你的UI响应。
https://stackoverflow.com/questions/1416776
复制相似问题