Was ist der Unterschied zwischen BeginConnect und ConnectAsync?
Was ist der Unterschied zwischen BeginConnect
und ConnectAsync
? Danach, was ist der Unterschied zwischen BeginDisconnect
und DisconnectAsync
?
Den ConnectAsync
Dokumentation besagt:
"Beginnt eine asynchrone Anforderung, für die eine remote-host-Verbindung."
Den BeginConnect
Dokumentation auch Staaten:
"Beginnt eine asynchrone Anforderung, für die eine remote-host-Verbindung."
Sowohl die DisconnectAsync
und BeginDisconnect
auch die gleiche Sache:
"Beginnt eine asynchrone Anforderung zum trennen der Verbindung zu einem remote-Endpunkt."
Was ist der Unterschied zwischen denen, die Methode, Paare und was sollte verwendet werden?
InformationsquelleAutor der Frage Kiril | 2011-04-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Buchse.ConnectAsync bietet SocketAsyncEventArgs als Parameter enthält viel mehr Informationen, im Vergleich zu 3 params zur Verfügung gestellt von BeginConnect. Ich weiß auch, dass ConnectAsync später eingeführt als BeginConnect und löst einige Fragen im Zusammenhang mit timeouts (kann mich nicht erinnern, die Quelle dieser Diskussion jetzt). Lieber ConnectAsync, wenn möglich (obwohl es erfordert min .NET 2.0 SP1).
Es ist ein Fang mit ConnectAsync über die Rückrufe. Wenn das ist Sorge, hier sind die Diskussionen darüber: Stack-überlauf, wenn Sie das System verwenden.Net.Sockets.Socket.AcceptAsync Modell und AsyncCallBack CompletedSynchronously
Gibt es keine Unterstützung für BeginConnect Methode in Silverlight (nur ConnectAsync wird unterstützt), so dass möglicherweise ein weiteres Anliegen, wenn Sie beabsichtigen, zu entwickeln, die client-Seite für Silverlight-Anwendungen.
Auch die Muster, die in beiden Ansätzen unterschiedlich sind. Hier ist die Diskussion: Gibt es irgendwelche performance-Unterschied zwischen Begin* und *Async-für Steckdosen in .NET?
InformationsquelleAutor der Antwort Teoman Soygul
Den XXXXAsync Methoden wurden eingeführt, weil Sie reduzieren die Menge an Speicher Prügel, die Auftritt, wenn die Server haben viele angeschlossenen clients. Gepaart mit pooling beschrieben in der Dokumentation, die diese API nutzen, erheblich reduziert die Menge der Arbeit, die GC zu erbringen hat, im Vergleich zu den älteren BeginXXX-API.
Den docs sagen, dass die folgenden:
So, es sei denn, man schreibt einen server, der viele tausend clients verbunden, ich würde nicht die Mühe mit XXXXAsync. Die API ist wesentlich schwieriger zu implementieren und wenig gain, ist alles andere als enterprise-level-services.
InformationsquelleAutor der Antwort spender