private void EndHandshake(IAsyncResult asyncResult)
{
AsyncHandshakeResult asyncHandshakeResult = (AsyncHandshakeResult)asyncResult;
if (!asyncHandshakeResult.IsCompleted) {
asyncHandshakeResult.AsyncWaitHandle.WaitOne();
}
lock (_handshakeLock) {
_isHandshaking = false;
if (asyncHandshakeResult.CompletedWithException) {
throw asyncHandshakeResult.AsyncException;
}
_isAuthenticated = true;
}
}