2009-09-13 77 views
0

我正在使用创建服务器/客户端样式程序,并且它使用tcp连接。不断运行TCP服务器脚本,但CPU使用率低

现在,服务器就像this,但它只会收听它的请求。我的问题在于它只收听直到它收到一条消息,然后关闭。然而,更大的问题是滞后,它不会让我以任何方式与该表单交互,直到它关闭连接。有没有办法让它“被动地”倾听,因为缺乏更好的单词?我不希望它占用大量的CPU。

感谢您的帮助!

这是在vb.net。

回答

2

在Windows中,按键,鼠标单击和移动等事件作为事件(消息)发送到专用于处理它们的线程。如果该线程需要很长时间来处理消息(如等待TCP请求进入),则该线程将被视为“阻塞”,直到该任务完成,实质上阻塞了您的整个用户界面。

您希望设置一个与运行表单的线程分开的线程来处理TCP侦听。 Vb.Net中的这个tutorial on threading应该让你走向正确的道路。

+0

线程做到了。谢谢!!!!! – Cyclone 2009-09-13 15:23:40

0

看看TcpListener类,还检查了Pending方法显示的代码。

如果您希望UI线程保持可用以保持UI响应,那么使用线程处理所有这些问题真的会更好。

相关问题