2009-09-13 42 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響應,那麼使用線程處理所有這些問題真的會更好。

相關問題