Indiefreaks.Xna.Sessions.Lidgren.LidgrenSession.EndCreateOrJoin C# (CSharp) Method

EndCreateOrJoin() private static method

private static EndCreateOrJoin ( IAsyncResult result ) : LidgrenSession
result IAsyncResult
return LidgrenSession
        private static LidgrenSession EndCreateOrJoin(IAsyncResult result)
        {
            LidgrenSession session = null;

            try
            {
                var asyncResult = (AsyncResult) result;

                result.AsyncWaitHandle.WaitOne();

                if (asyncResult.AsyncDelegate is AsynchronousCreate)
                    session = ((AsynchronousCreate) asyncResult.AsyncDelegate).EndInvoke(result);
                else if (asyncResult.AsyncDelegate is AsynchronousJoin)
                    session = ((AsynchronousJoin)asyncResult.AsyncDelegate).EndInvoke(result);
            }
            finally
            {
                result.AsyncWaitHandle.Close();
            }

            return session;
        }