我可能只是誤解的東西在這裏根本,但...System.Net.Sockets.NetworkStream的異步讀取回調
塞納里奧:我叫System.Net.Sockets.NetworkStream
的BeginRead
方法和我的機器接收到響應/請求來自網絡設備。運行時在自己的線程中運行我的回調。在此線程可以調用EndRead
之前,機器會收到另一個響應/請求。
問題:將運行時立即撥打我的回調在另一個線程或等待我打電話EndRead
,然後再BeginRead
?
我可能只是誤解的東西在這裏根本,但...System.Net.Sockets.NetworkStream的異步讀取回調
塞納里奧:我叫System.Net.Sockets.NetworkStream
的BeginRead
方法和我的機器接收到響應/請求來自網絡設備。運行時在自己的線程中運行我的回調。在此線程可以調用EndRead
之前,機器會收到另一個響應/請求。
問題:將運行時立即撥打我的回調在另一個線程或等待我打電話EndRead
,然後再BeginRead
?
它應該在另一個線程中立即運行回調方法。 (因此是異步而不是阻塞調用)。
你必須再次調用EndRead然後BeginRead來處理新的傳入消息。
這肯定是錯的?每次調用BeginRead()只會引發1次回調,除非您在回調中再次調用BeginRead(),那麼您將不會讀取更多數據? – 2012-02-14 10:09:36