private static void UpdateMemberCallbackImpl(IntPtr ptr, Result result)
        {
            GCHandle            h        = GCHandle.FromIntPtr(ptr);
            UpdateMemberHandler callback = (UpdateMemberHandler)h.Target;

            h.Free();
            callback(result);
        }
        /// <summary>
        ///     Updates lobby member info for a given member of the lobby.
        /// </summary>
        /// <param name="lobbyId"></param>
        /// <param name="userId"></param>
        /// <param name="transaction"></param>
        /// <param name="callback"></param>
        public void UpdateMember(long lobbyId, long userId, LobbyMemberTransaction transaction,
                                 UpdateMemberHandler callback)
        {
            GCHandle wrapped = GCHandle.Alloc(callback);

            Methods.UpdateMember(methodsPtr, lobbyId, userId, transaction.MethodsPtr, GCHandle.ToIntPtr(wrapped),
                                 UpdateMemberCallbackImpl);
            transaction.MethodsPtr = IntPtr.Zero;
        }