/// <summary> /// NIM客户端注销/退出,同步方法 /// </summary> /// <param name="logoutType"></param> /// <param name="waitSeconds"></param> public static void Logout(NIMLogoutType logoutType, int waitSeconds = 10) { System.Threading.Semaphore semaphore = new System.Threading.Semaphore(0, 1); NIM.ClientAPI.Logout(logoutType, (r) => { semaphore.Release(); }); semaphore.WaitOne(TimeSpan.FromSeconds(waitSeconds)); }
internal static extern void nim_client_logout(NIMLogoutType logout_type, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string jsonExtension, NIMGlobal.JsonTransportCb cb, IntPtr userData);
/// <summary> /// NIM客户端注销/退出 /// </summary> /// <param name="logoutType">Logout操作类型</param> /// <param name="delegate">注销/退出的回调函数.</param> public static void Logout(NIMLogoutType logoutType, LogoutResultDelegate @delegate) { IntPtr ptr = NimUtility.DelegateConverter.ConvertToIntPtr(@delegate); ClientNativeMethods.nim_client_logout(logoutType, null, LogoutResultCallback, ptr); }