Exemplo n.º 1
0
 public void TaskDone(AsynTask task)
 {
     lock (doneQueueLock)
     {
         doneQueue.Enqueue(task as UnityCbTask);
     }
 }
Exemplo n.º 2
0
 public virtual void AddTask(AsynTask task)
 {
     if (!m_isRunning)
     {
         Start();
     }
     lock (m_waitingTaskQueueLock)
     {
         this.m_waitingTaskQueue.Enqueue(task);
         Monitor.Pulse(m_waitingTaskQueueLock);
     }
 }
Exemplo n.º 3
0
        private static void Upload(AsynTask task)
        {
            LogTask ltask = task as LogTask;
            string  url   = Global.Instance.LogServerUrl;

            if (string.IsNullOrEmpty(url))
            {
                return;
            }
            string saveName = "";            //获取机器唯一标志

            if (string.IsNullOrEmpty(saveName))
            {
                return;
            }
            WebExecWorker.Instance.UploadFile(WebExecWorker.DEFAULT_ID, url, ltask.m_flog.path, "file", saveName, true, true);
        }
Exemplo n.º 4
0
 private void Run()
 {
     while (m_isRunning)
     {
         if (0 == m_runningTaskQueue.Count)
         {
             lock (m_waitingTaskQueueLock)
             {
                 if (0 == m_waitingTaskQueue.Count)
                 {
                     Monitor.Wait(m_waitingTaskQueueLock);
                     if (!m_isRunning)
                     {
                         break;
                     }
                 }
                 Queue <AsynTask> temp = m_runningTaskQueue;
                 m_runningTaskQueue = m_waitingTaskQueue;
                 m_waitingTaskQueue = temp;
             }
         }
         else
         {
             while (m_runningTaskQueue.Count > 0 && m_isRunning)
             {
                 AsynTask task = m_runningTaskQueue.Dequeue();
                 try
                 {
                     task.Execute();
                 }
                 catch (Exception ex)
                 {
                     UnityEngine.Debug.LogException(ex);
                 }
             }
         }
     }
     m_runningTaskQueue.Clear();
     m_waitingTaskQueue.Clear();
     OnClosed();
 }
Exemplo n.º 5
0
 public override void AddTask(AsynTask task)
 {
     ++taskCounts;
     task.CallBackHandler = this.TaskDone;
     base.AddTask(task);
 }