用VB.NET实现TCP冻结

用VB.NET实现TCP冻结,vb.net,infinite-loop,Vb.net,Infinite Loop,我在VB.Net中制作了一个游戏,它使用tcp并来回发送消息 通常情况下,消息发送速度不够快,因此TCPObj.connect()方法进入循环,直到到达超时,然后抛出错误。但大多数时候,它都不会出错,我的应用程序只是冻结,然后在TCPObj.connect()成功后返回。在尝试连接时,如何使connect()方法执行application.doevents?基本上,我不希望它冻结我的整个应用程序。由于tcp.connect()是一个.NET方法,因此我无法进入并添加应用程序。doevents在单

我在VB.Net中制作了一个游戏,它使用tcp并来回发送消息


通常情况下,消息发送速度不够快,因此
TCPObj.connect()
方法进入循环,直到到达超时,然后抛出错误。但大多数时候,它都不会出错,我的应用程序只是冻结,然后在
TCPObj.connect()成功后返回。在尝试连接时,如何使
connect()
方法执行application.doevents?基本上,我不希望它冻结我的整个应用程序。由于
tcp.connect()
是一个.NET方法,因此我无法进入并添加
应用程序。doevents

在单独的线程上运行tcp连接代码。您可以使用队列存储要从UI发送的事件,并让单独的线程拾取并处理它们。

将与TCP的连接放在另一个线程中。您可以使用异步回调返回主线程。如果它由于超时而在另一个线程上出错,您可以在那里或在主线程上处理它