我有這樣一個主題:Thread.Sleep是否停用TCPListener?
Public Sub StartWork()
Try
myTCPListener.Start()
While StopRequest = False
Dim requestspending As Boolean = m_TCPListener.Pending()
If myTCPListener.Pending = False Then
Threading.Thread.Sleep(100)
Else
DoSomething()
End If
End While
Catch ex As Exception
Throw ex
End Try
End Sub
現在我的問題是:我通過了Thread.Sleep發送線程時什麼都不會發生在這裏睡眠模式。這是否會影響他的工作中的TCPListener,並且在線程處於睡眠模式時發生了一個輸入連接?
是的。代碼很奇怪,只有當有人試圖連接時纔會出現DoSomething。所以不要打擾,只需調用AcceptSocket,而不必爲了避免刻錄核心而進入睡眠狀態。 –
事情是,當我運行它沒有thread.sleep該程序需要我的cpu的33%(amd x6 phenom),與thread.sleep它只需要17%。所以當線程睡眠連接仍然可以掛起,但不能被接受,我得到的權利? – Husky110
很不清楚如何使用Thread.Sleep(100)調用來燒錄17%的核心。 Anyhoo,你應該更喜歡你從AcceptSocket獲得的0%。 –