函數原型如下:
public IAsyncResult BeginConnect(
EndPoint remoteEP,
AsyncCallback callback,
Object state
)
public bool ConnectAsync(
SocketAsyncEventArgs e
)
他們都開始壹個對遠程主機連接的異步請求。BeginConnect可以有壹個 AsyncCallback 委托的回調方法來處理後續的事情,但是回調方法應調用 EndConnect 方法。 當應用程序調用 BeginConnect 時,系統將使用單獨的線程執行指定的回調方法,並在 EndConnect 上壹直阻止到 Socket成功連接或引發異常為止。 另外 如果想要在調用 BeginConnect 方法後使原始線程阻止,請使用 WaitOne。 當需要原始線程繼續執行時,請在回調方法中調用ManualResetEvent 的 Set 方法。
對於ConnectAsync來說的話,若要在完成時得到通知,必須創建壹個實現EventHandler<SocketAsyncEventArgs> 委托的回調方法,並將該回調連接到 SocketAsyncEventArgs.Completed事件。
所以總體上來說這兩個方法實現的東西差不多,就看用戶的習慣了。MSDN上面有壹個用BeginConnect的例子可以參考。