2009-08-12 45 views
-1

我在VB.Net中做了一個遊戲,它使用tcp並來回發送消息。用VB.NET凍結TCP

發生的事情是,每隔一段時間,消息都不能很快發送,所以TCPObj.connect()方法進入循環,直到它達到超時,然後吐出一個錯誤。大多數情況下,它永遠不會出現錯誤,我的應用程序會凍結,然後在TCPObj.connect()成功後返回。如何使connect()方法在嘗試連接時執行application.doevents?基本上,我不希望它凍結我的整個應用程序。由於tcp.connect()是一種.NET方法,因此我無法進入並添加application.doevents

回答

1

在單獨的線程上運行您的TCP連接代碼。您可以使用隊列來存儲要從您的UI發送的事件,並讓單獨的線程選取並處理它們。

0

將連接放到另一個線程中的TCP。您可以使用異步回調來回到主線程。如果由於超時而在另一個線程上出錯,則可以在那裏或在主線程上處理它。