按收到的顺序运行Async IO线程完成

时间:2009-07-16 22:16:15

标签: .net multithreading sockets networkstream

对不起,我对所有这些多线程的东西都很陌生......

我正在开发一个客户端/服务器应用程序,我将使用System.Net.Sockets.NetworkStream的Async IO方法。

我知道在调用BeginRead之后,系统会在每次接收数据时开始调用我的回调。回调可能需要很长时间才能完成,但需要在任何其他线程运行同一回调之前完成。

如果我只是将我的回调方法标记为已同步,那么这应该足以确保每个回调线程按照系统接收数据的顺序运行完成吗?

如果没有,哪种同步工具最好? (例如Monitor s,WaitHandle s,Semaphore s?等等......)

编辑:这是在Win 2008 2008上的VB 2008中

1 个答案:

答案 0 :(得分:1)

每个BeginRead都匹配一个EndRead。如果您想要阅读更多内容,则必须在回调中再次调用BeginRead。


顺便说一句,套接字是相当低的水平。你确定你不能使用WCF吗?