private static void DisconnectLobbyCallbackImpl(IntPtr ptr, Result result) { GCHandle h = GCHandle.FromIntPtr(ptr); DisconnectLobbyHandler callback = (DisconnectLobbyHandler)h.Target; h.Free(); callback(result); }
/// <summary> /// Disconnects the current user from a lobby. /// </summary> /// <param name="lobbyId"></param> /// <param name="callback"></param> public void DisconnectLobby(long lobbyId, DisconnectLobbyHandler callback) { GCHandle wrapped = GCHandle.Alloc(callback); Methods.DisconnectLobby(methodsPtr, lobbyId, GCHandle.ToIntPtr(wrapped), DisconnectLobbyCallbackImpl); }