BeginConnect
和ConnectAsync
有什么区别?随后,BeginDisconnect
和DisconnectAsync
有什么区别?
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 model和AsyncCallBack 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/