Esempio n. 1
0
        /// <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
                }
            }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
 /// <summary>
 /// 委托回调
 /// </summary>
 /// <param name="unload"></param>
 /// <param name="type"></param>
 public void Set(object unload, unloadType type)
 {
     Unload = unload;
     Type   = type;
 }