private static void OnTcpConnectCompleted(object sender, SocketAsyncEventArgs args)
        {
            args.Completed -= OnTcpConnectCompleted;
            TcpUserToken token = (TcpUserToken)args.UserToken;

            AutoReleaseAsyncResult r = new AutoReleaseAsyncResult
            {
                AsyncState = token.AsyncState,
                UserToken  = token
            };

            token.Callback(r);
        }
        private static void OnTcpConnectCompleted(object sender, SocketAsyncEventArgs args)
        {
            TcpUserToken token = (TcpUserToken)args.UserToken;

            token.Callback(token);
        }