protected bool ProcessCoTasksInternal()
        {
            int count = this._coTasks.Count;

            for (int i = 0; i < count; i++)
            {
                BaseCoTask baseCoTask = this._coTasks.Dequeue();
                if (baseCoTask.MoveNext())
                {
                    this._coTasks.Enqueue(baseCoTask);
                }
            }
            foreach (BaseCoTask current in this._shouldRunNext)
            {
                this._coTasks.Enqueue(current);
            }
            this._shouldRunNext.Clear();
            this.CountCoTask = this._coTasks.Count;
            if (this._coTasks.Count > 0)
            {
                return(true);
            }
            this._coTasks.Clear();
            return(false);
        }
 public void StartTaskPararell(BaseCoTask coTsk)
 {
     this.CountCoTask++;
     this._shouldRunNext.Add(coTsk);
 }
示例#3
0
 public void Add(BaseCoTask ct)
 {
     this._queue.Enqueue(ct);
 }