首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >条件beginReceive

条件beginReceive
EN

Stack Overflow用户
提问于 2009-09-14 20:32:26
回答 1查看 500关注 0票数 0

我正在编写一个使用Sockets的客户端程序。我希望客户端异步接收,除非它正在等待响应,在这种情况下,我希望同步接收。

我目前的问题是,因为我必须调用socket.BeginReceive,它会一直等到缓冲区中有数据,所以异步调用总是在同步调用之前发生。

如何临时停止BeginReceive的执行?有没有一种方法可以调用EndReceive,然后一旦我完成同步接收,我就可以继续异步接收?

EN

回答 1

Stack Overflow用户

发布于 2009-09-14 21:49:49

据我所知,没有办法阻止BeginReceive short关闭套接字。要完成您想要完成的任务,您需要将您的调用移至完全同步,并将您想要进行的异步调用放入单独的线程中。然后,当您想要进行额外的调用时,可以终止/暂停该线程。您还可以将ReceiveTimeout属性设置为较低的值,并让它继续循环,直到它看到停止请求为止,就像设置类范围变量一样。

出于好奇心,既然已经在异步接收,为什么还要进行同步调用呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1423762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档