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

ConnectAsync 文档指出:



BeginConnect 文档指出:



DisconnectAsync BeginDisconnect 都声明相同的内容:



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

最佳答案

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/

10-11 16:00