2009-07-16 57 views
0

對不起相同的順序完成,我是很新的這一切多線程的東西...運行異步IO線程在所收到

我工作的客戶機/服務器應用程序,我將使用System.Net.Sockets.NetworkStream的異步IO方法。

我知道調用BeginRead後,系統會在每次接收數據時開始調用回調函數。回調可能需要很長時間才能完成,但需要在任何其他線程運行相同的回調之前完成。

如果我簡單地將我的回調方法標記爲synchronized,是否足以確保每個回調線程按照系統接收其數據的順序運行完成?

如果不是,什麼同步工具最好? (例如Monitor S,WaitHandle S,Semaphore S2,等...)

編輯:這是2008年VB贏Server 2008的

+0

語言/平臺? – Javier 2009-07-16 22:18:56

回答

1

每個的BeginRead匹配一個EndRead上。如果您想閱讀更多內容,則必須在回調中再次調用BeginRead。


順便說一句,套接字是相當低的水平。你確定你不能使用WCF嗎?

+0

我不知道。謝謝。之前有人告訴我,系統會一直調用回調函數,直到EndRead被調用。 – mcjabberz 2009-07-16 22:22:02