示例#1
0
 private PtiEventer(PtiEventType actionType, Object creator)
 {
     this.ActionType = actionType;
     this.CreateDate = DateTime.Now;
     this.IsExcuted  = false;
     this.Creator    = creator;
 }
示例#2
0
        /// <summary>
        /// 注册一个Event
        /// </summary>
        /// <param name="action">执行的委托,返回object</param>
        /// <param name="actionType">执行类型</param>
        /// <param name="callBack">回调方法</param>
        public PtiEventer RegEvent(Func <PtiEventer, object> action, PtiEventType actionType, Func <PtiEventer, object> callBack = null)
        {
            PtiEventer ptiEvent = PtiEventer.Create(actionType, this, action, callBack);

            this.RegEvent(ptiEvent);
            return(ptiEvent);
        }
示例#3
0
        public static PtiEventer Create(PtiEventType actionType, Object creator, Func <PtiEventer, object> action, Func <PtiEventer, object> callBack = null)
        {
            PtiEventer act = new PtiEventer(PtiEventType.CheckAllTasks, creator);

            act.MainAction = action;
            act.CallBack   = callBack;
            return(act);
        }
示例#4
0
        /// <summary>
        /// 注册一个LoopEvent (LoopEvent只有在EventManager启动之前注册有效)
        /// </summary>
        /// <param name="action">执行的委托,返回object</param>
        /// <param name="actionType">执行的类型</param>
        /// <param name="interval">执行间隔</param>
        /// <param name="IsImmediately">是否立即执行</param>
        /// <param name="callBack">回调方法,传入object</param>
        public PtiEventer RegLoopEvent(Func <PtiEventer, object> action, PtiEventType actionType, TimeSpan interval, bool IsImmediately = false, Func <PtiEventer, object> callBack = null)
        {
            PtiEventer ptiEvent = PtiEventer.Create(actionType, this, action, callBack);

            ptiEvent.IsLoopEvent = true;
            this.RegLoopEvent(ptiEvent, interval, IsImmediately);
            return(ptiEvent);
        }
示例#5
0
        /// <summary>
        /// 注册一个Event并且等待执行完毕
        /// </summary>
        /// <typeparam name="T">返回类型</typeparam>
        /// <param name="action"></param>
        /// <param name="actionType"></param>
        /// <param name="timeout"></param>
        /// <param name="callBack"></param>
        /// <returns></returns>
        public T RegEventAndWait <T>(Func <PtiEventer, T> action, PtiEventType actionType, int timeout = 10000, Func <PtiEventer, object> callBack = null) where T : class
        {
            PtiEventer pe = this.RegEvent(action, actionType, callBack);

            return(this.WaitEvent <T>(pe));
            //DateTime TimeOut = DateTime.Now.AddMilliseconds(timeout);
            //while (DateTime.Now < TimeOut)
            //{
            //    if (pe.IsExcuted)
            //    {
            //        return pe.EventResult as T;
            //    }
            //    Thread.Sleep(100);
            //}
            //return null;
        }