gpt4 book ai didi

c# - BeginConnect 和 ConnectAsync 之间有什么区别?

转载 作者:IT王子 更新时间:2023-10-29 04:14:52 25 4
gpt4 key购买 nike

BeginConnectConnectAsync 有什么区别?随后,BeginDisconnectDisconnectAsync 有什么区别?

ConnectAsync文档状态:

"Begins an asynchronous request for a remote host connection."

BeginConnect文档指出:

"Begins an asynchronous request for a remote host connection."

DisconnectAsyncBeginDisconnect也声明同样的事情:

"Begins an asynchronous request to disconnect from a remote endpoint."

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

最佳答案

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

ConnectAsync 有一个关于回调的问题。如果担心这一点,请参阅以下讨论:Stack overflow when using the System.Net.Sockets.Socket.AcceptAsync modelAsyncCallBack CompletedSynchronously

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

两种方法中使用的模式也不同。这是讨论:Is there any performance difference between Begin* and *Async for sockets in .NET?

关于c# - BeginConnect 和 ConnectAsync 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5764921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com