コード例 #1
0
        public static void Register(this ScheduleTimer timer, string key, IScheduledRule rule, Delegate @delegate, params object[] args)
        {
            IScheduledItem scheduledItem = SchedulerFactory.Provider(rule);

            if (scheduledItem == null)
            {
                return;
            }
            timer.AddAsyncTask(key, scheduledItem, @delegate, args);
        }
コード例 #2
0
        public static void Register(this ScheduleTimer timer, string key, IList <IScheduledRule> rules, Delegate @delegate, params object[] args)
        {
            EventQueue eventQueue = new EventQueue();

            foreach (IScheduledRule current in rules)
            {
                IScheduledItem scheduledItem = SchedulerFactory.Provider(current);
                if (scheduledItem != null)
                {
                    eventQueue.Add(scheduledItem);
                }
            }
            timer.AddAsyncTask(key, eventQueue, @delegate, args);
        }
コード例 #3
0
ファイル: SchedulerFactory.cs プロジェクト: dengliyan/XUtils
        public static IScheduledItem Provider(IScheduledRule rule)
        {
            IScheduledItem result;

            if (rule is ScheduledBlockIntervalRule)
            {
                ScheduledBlockIntervalRule rule2 = rule as ScheduledBlockIntervalRule;
                result = SchedulerFactory.BlockIntervalRule(rule2);
            }
            else
            {
                if (rule is ScheduledBlockTimerRule)
                {
                    ScheduledBlockTimerRule rule3 = rule as ScheduledBlockTimerRule;
                    result = SchedulerFactory.BlockTimerRule(rule3);
                }
                else
                {
                    ScheduledRule rule4 = rule as ScheduledRule;
                    result = SchedulerFactory.BaseRule(rule4);
                }
            }
            return(result);
        }