2009-07-13 56 views
1

我可能只是誤解的東西在這裏根本,但...System.Net.Sockets.NetworkStream的異步讀取回調

塞納里奧:我叫System.Net.Sockets.NetworkStreamBeginRead方法和我的機器接收到響應/請求來自網絡設備。運行時在自己的線程中運行我的回調。在此線程可以調用EndRead之前,機器會收到另一個響應/請求。

問題:將運行時立即撥打我的回調在另一個線程或等待我打電話EndRead,然後再BeginRead

回答

1

它應該在另一個線程中立即運行回調方法。 (因此是異步而不是阻塞調用)。

+0

這肯定是錯的?每次調用BeginRead()只會引發1次回調,除非您在回調中再次調用BeginRead(),那麼您將不會讀取更多數據? – 2012-02-14 10:09:36

2

你必須再次調用EndRead然後BeginRead來處理新的傳入消息。