2009-07-16 18 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