/// <summary> /// 删除卸载处理函数 /// </summary> /// <param name="onUnload">卸载处理函数</param> /// <param name="unloadType"></param> /// <param name="isRun">是否执行删除的函数</param> /// <returns>是否删除成功</returns> internal static bool Remove(object onUnload, unloadType unloadType, bool isRun) { Monitor.Enter(unloaderLock); bool isRemove = unloaders.Remove(new unload { Unload = onUnload, Type = unloadType }); Monitor.Exit(unloaderLock); if (isRemove && isRun) { new unload { Unload = onUnload, Type = unloadType } }
/// <summary> /// 添加应用程序卸载处理 /// </summary> /// <param name="onUnload">卸载处理函数</param> /// <param name="unloadType"></param> /// <returns>是否添加成功</returns> internal static bool AddLast(object onUnload, unloadType unloadType) { bool isAdd = false; Monitor.Enter(unloaderLock); try { if (state == unloadState.Run || state == unloadState.WaitTransaction) { lastUnloaders.Add(new unload { Unload = onUnload, Type = unloadType }); isAdd = true; } } finally { Monitor.Exit(unloaderLock); } if (!isAdd) { log.Default.Real("应用程序正在退出", null, false); } return(isAdd); }
/// <summary> /// 委托回调 /// </summary> /// <param name="unload"></param> /// <param name="type"></param> public void Set(object unload, unloadType type) { Unload = unload; Type = type; }