public IAsyncResult BeginDisconnect(bool reuseSocket, AsyncCallback callback, object state) { DisconnectOverlappedAsyncResult asyncResult = new DisconnectOverlappedAsyncResult(this, state, callback); asyncResult.StartPostingAsyncOp(false); this.DoBeginDisconnect(reuseSocket, asyncResult); asyncResult.FinishPostingAsyncOp(); return (IAsyncResult) asyncResult; }
public IAsyncResult BeginDisconnect(bool reuseSocket, AsyncCallback callback, object state) { // Start context-flowing op. No need to lock - we don't use the context till the callback. DisconnectOverlappedAsyncResult asyncResult = new DisconnectOverlappedAsyncResult(this, state, callback); asyncResult.StartPostingAsyncOp(false); // Post the disconnect. DoBeginDisconnect(reuseSocket, asyncResult); // Finish flowing (or call the callback), and return. asyncResult.FinishPostingAsyncOp(); return asyncResult; }
public IAsyncResult BeginDisconnect(bool reuseSocket, AsyncCallback callback, object state) { if (NetEventSource.IsEnabled) NetEventSource.Enter(this); if (CleanedUp) { throw new ObjectDisposedException(this.GetType().FullName); } // Start context-flowing op. No need to lock - we don't use the context till the callback. DisconnectOverlappedAsyncResult asyncResult = new DisconnectOverlappedAsyncResult(this, state, callback); asyncResult.StartPostingAsyncOp(false); // Post the disconnect. DoBeginDisconnect(reuseSocket, asyncResult); // Finish flowing (or call the callback), and return. asyncResult.FinishPostingAsyncOp(); return asyncResult; }