public void Restart()
 {
     ProgressHelper.STATUS status = Progress.GetStatus();
     if (status == ProgressHelper.STATUS.CANCLE || status == ProgressHelper.STATUS.ERROR)
     {
         Progress.Clear();
         Start();
     }
 }
示例#2
0
        public void RecieveDownloadOver()
        {
            lock (this)
            {
                bool bError   = false;
                bool bAllOver = true;
                ProgressHelper.STATUS Status = ProgressHelper.STATUS.RUNNING;
                foreach (var item in Items)
                {
                    if (item.GetType() == typeof(TrackTask))
                    {
                        Status = ((TrackTask)item).Progress.GetStatus();
                    }
                    else if (item.GetType() == typeof(VideoTask))
                    {
                        Status = ((VideoTask)item).Progress.GetStatus();
                    }

                    if (Status == ProgressHelper.STATUS.RUNNING || Status == ProgressHelper.STATUS.WAIT)
                    {
                        bAllOver = false;
                        break;
                    }
                    else if (Status == ProgressHelper.STATUS.ERROR)
                    {
                        bError = true;
                    }
                    else if (Status == ProgressHelper.STATUS.CANCLE)
                    {
                        bAllOver = false;
                        bError   = false;
                        break;
                    }
                }

                if (bAllOver)
                {
                    if (bError)
                    {
                        VMParent.TaskError(this);
                    }
                    else
                    {
                        VMParent.TaskComplete(this);
                    }
                }
            }
        }