Ejemplo n.º 1
0
 /// <summary>
 /// 添加任务列表
 /// </summary>
 /// <param name="tasks"></param>
 /// <param name="weight"></param>
 /// <returns>开始任务数量</returns>
 public int AddTasks(IList <IAsyncTask> tasks, float weight = 1)
 {
     lock (mLock)
     {
         if (IsDone || weight <= 0 || tasks == null || tasks.Count == 0)
         {
             return(0);
         }
         float eweight = weight / tasks.Count;
         int   len     = 0;
         for (int i = 0; i < tasks.Count; i++)
         {
             IAsyncTask task = tasks[i];
             if (task != null && !task.IsDone)
             {
                 Task t = new Task();
                 t.task        = task;
                 t.weight      = eweight;
                 mTotalWeight += eweight;
                 mTasks.Add(t);
                 if (mStarted)
                 {
                     task.OnStart();
                 }
                 len++;
             }
         }
         return(len);
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 添加任务
 /// </summary>
 /// <param name="task"></param>
 /// <param name="weight"></param>
 /// <returns></returns>
 public bool AddTask(IAsyncTask task, float weight = 1)
 {
     lock (mLock)
     {
         if (IsDone || task == null || task.IsDone || weight <= 0)
         {
             return(false);
         }
         Task t = new Task();
         t.task        = task;
         t.weight      = weight;
         mTotalWeight += weight;
         mTasks.Add(t);
         if (mStarted)
         {
             task.OnStart();
         }
         return(true);
     }
 }