Пример #1
0
        private void UploadFile()
        {
            if (FilesQueue.Count != 0)
            {
                iStatus = StatusCode.BUSY;

                UploadFileTask UploadTask = FilesQueue.Dequeue();
                m_wManager.SucceededHandler = (sender, e) =>
                {
                    iStatus = StatusCode.SUCCESS;
                    //无客户事件处理
                    iStatus = iStatus == StatusCode.SUCCESS ? StatusCode.READY : iStatus;
                };
                m_wManager.FailedHandler = (sender, e) =>
                {
                    int Life = UploadTask.Life;
                    if (Life > 0)
                    {   //还有生命
                        TaskEqneue(new UploadFileTask(UploadTask.TargetFile, UploadTask.LocalFile, Life - 1));
                        iStatus = StatusCode.RETRY;
                    }
                    else
                    {   //error
                        iStatus = StatusCode.UNKNOWN;
                    }
                };
                m_wManager.Upload(UploadTask.TargetFile, UploadTask.LocalFile);
            }
        }
Пример #2
0
 public void TaskEqneue(UploadFileTask Files)
 {
     //对该方法上锁.不可有多个线程共同进行入队
     lock (FilesQueue)
     {
         FilesQueue.Enqueue(Files);
     }
 }