0

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

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

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

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

如果不是,什么同步工具最好?(例如Monitors、WaitHandles、Semaphores? 等...)

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

4

1 回答 1

1

每个 BeginRead 匹配一个 EndRead。如果你想阅读更多,你必须在回调中再次调用 BeginRead。


顺便说一句,套接字的级别很低。您确定不能为此使用 WCF 吗?

于 2009-07-16T22:17:47.480 回答