BeginConnect 和 ConnectAsync 有什么区别?

2023-12-26

有什么区别BeginConnect and ConnectAsync?随后,有什么区别BeginDisconnect and DisconnectAsync?

The ConnectAsync http://msdn.microsoft.com/en-us/library/bb538102%28v=vs.95%29.aspx文档指出:

“开始远程主机连接的异步请求。”

The BeginConnect http://msdn.microsoft.com/en-us/library/tad07yt6%28v=VS.100%29.aspx文档also states:

“开始远程主机连接的异步请求。”

这俩DisconnectAsync http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.disconnectasync.aspx and BeginDisconnect http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.begindisconnect.aspx也声明同样的事情:

“开始异步请求以断开与远程端点的连接。”

这些方法对之间有什么区别以及应该使用哪一个?


Socket.ConnectAsync 提供 SocketAsyncEventArgs 作为参数,与 BeginConnect 提供的 3 个参数相比,它包含更多信息。我还知道 ConnectAsync 比 BeginConnect 晚推出,解决了一些与超时相关的问题(现在不记得这个讨论的来源)。尽可能首选 ConnectAsync(尽管它至少需要 .NET 2.0 SP1)。

ConnectAsync 有一个关于回调的问题。如果您担心这一点,请参阅以下讨论:使用 System.Net.Sockets.Socket.AcceptAsync 模型时堆栈溢出 https://stackoverflow.com/questions/3954668/stack-overflow-when-using-the-system-net-sockets-socket-acceptasync-model and 异步回调同步完成 https://stackoverflow.com/questions/1372053/asynccallback-completedsynchronously

Silverlight 中不支持 BeginConnect 方法(仅支持 ConnectAsync),因此如果您打算开发客户端 Silverlight 应用程序,这可能是另一个问题。

两种方法中使用的模式也不同。这是讨论:.NET 中套接字的 Begin* 和 *Async 之间有性能差异吗? https://stackoverflow.com/questions/5202608/is-there-any-performance-difference-between-begin-and-async-for-sockets-in-net

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BeginConnect 和 ConnectAsync 有什么区别? 的相关文章

随机推荐