Exemplo n.º 1
0
 public bool Exists(IQueueTaskItem taskItem)
 {
     if (_taskItems == null || _taskItems.Count == 0)
     {
         return(false);
     }
     return(_taskItems.Contains(taskItem));
 }
Exemplo n.º 2
0
 public void AddTask(IQueueTaskItem taskItem)
 {
     if (_taskItems == null)
     {
         _taskItems = new List <IQueueTaskItem>();
     }
     _taskItems.Add(taskItem);
 }
Exemplo n.º 3
0
 public void Remove(IQueueTaskItem taskItem)
 {
     if (_taskItems == null || _taskItems.Count == 0)
     {
         return;
     }
     if (_taskItems.Contains(taskItem))
     {
         _taskItems.Remove(taskItem);
     }
 }
Exemplo n.º 4
0
        public void DoAllTask()
        {
            if (_taskItems == null || _taskItems.Count == 0)
            {
                return;
            }
            _taskItems.Reverse();
            //
            if (_tracker != null)
            {
                _tracker.StartTracking(string.Empty, _taskItems.Count);
            }
            int idx = 0;

            //
            for (int i = _taskItems.Count - 1; i >= 0; i--)
            {
                IQueueTaskItem taskItem = _taskItems[i];
                bool           isOK     = false;
                try
                {
                    string name = taskItem.Name != null ? taskItem.Name : taskItem.ToString();
                    if (_tracker != null)
                    {
                        _tracker.Tracking("正在" + name + "......", idx);
                    }
                    //
                    if (OnBeforeDoQueueTaskItemHandler != null)
                    {
                        OnBeforeDoQueueTaskItemHandler(this, _taskItems[i]);
                    }
                    _taskItems[i].Do(_tracker);
                    _taskItems.Remove(_taskItems[i]);
                    isOK = true;
                }
                catch
                {
                    isOK = false;
                }
                if (OnAfterQueueTaskItemHandler != null)
                {
                    OnAfterQueueTaskItemHandler(this, taskItem, isOK);
                }
                idx++;
            }
        }