예제 #1
0
        protected virtual void LoadAndInvokeTasks(CancellationToken?token, bool autoLoad)
        {
            if (autoLoad)
            {
                lock (Lock) Repository.Load();
            }

            lock (Lock)
            {
                foreach (var pair in Repository.Get())
                {
                    //начать обработку если эту задачу еще не выполняли
                    if ((AllowReprocessing || !ProcessingTasks.Contains(pair.Key) && !FailTasks.Contains(pair.Key)) && !PoolTasks.Contains(pair.Key))
                    {
                        PoolTasks.Add(pair.Key);
                        Pool.Add(Perform, pair.Key, pair.Value, token);
                    }
                }
            }

            Pool.Invoke();
        }