Ejemplo n.º 1
0
        void LoadItemSummary(SummaryTask task)
        {
            // 最多重试两次
            for (int i = 0; i < 2; i++)
            {
                string strError   = "";
                string strSummary = "";
                int    nRet       = this.Container.GetBiblioSummary(task.ItemBarcode,
                                                                    task.ConfirmItemRecPath,
                                                                    out strSummary,
                                                                    out strError);
                if (nRet == -1)
                {
                    strSummary = "获取书目摘要时出错: " + strError;
                    task.State = "error";
                }
                else
                {
                    task.State = "finish";
                }

                this.Container.AsyncFillItemSummary(task.ChargingTask,
                                                    strSummary,
                                                    task.State != "error");

                if (task.State == "finish")
                {
                    break;
                }
            }
        }
Ejemplo n.º 2
0
 public void RemoveTask(SummaryTask task, bool bLock = true)
 {
     if (bLock == true)
     {
         if (this.m_lock.TryEnterWriteLock(m_nLockTimeout) == false)
         {
             throw new LockException("锁定尝试中超时");
         }
     }
     try
     {
         this._tasks.Remove(task);
     }
     finally
     {
         if (bLock == true)
         {
             this.m_lock.ExitWriteLock();
         }
     }
 }
Ejemplo n.º 3
0
        // 加入一个任务到列表中
        public void AddTask(SummaryTask task)
        {
            task.State = "";                                 // 表示等待处理
            if (this.m_lock.TryEnterWriteLock(500) == false) // m_nLockTimeout
            {
                throw new LockException("锁定尝试中超时");
            }
            try
            {
                this._tasks.Add(task);
            }
            finally
            {
                this.m_lock.ExitWriteLock();
            }

            if (this.Stopped == true)
            {
                this.BeginThread();
            }

            // 触发任务开始执行
            this.Activate();
        }
Ejemplo n.º 4
0
        internal void AddItemSummaryTask(string strItemBarcode,
            string strConfirmItemRecPath,
            ChargingTask charging_task,
            bool bClearBofore = true)
        {
            if (bClearBofore)
            {
                // 如果以前有摘要,要先清除。这样操作者在等待过程中能清楚当前处在什么状态
                charging_task.ItemSummary = "正在获取书目摘要 ...";
                DisplayTask("refresh", charging_task);
            }

            SummaryTask task = new SummaryTask();
            task.Action = "get_item_summary";
            task.ItemBarcode = strItemBarcode;
            task.ConfirmItemRecPath = strConfirmItemRecPath;
            task.ChargingTask = charging_task;

            this._summaryList.AddTask(task);
        }
Ejemplo n.º 5
0
        void LoadItemSummary(SummaryTask task)
        {
            // 最多重试两次
            for (int i = 0; i < 2; i++)
            {
                string strError = "";
                string strSummary = "";
                int nRet = this.Container.GetBiblioSummary(task.ItemBarcode,
                    task.ConfirmItemRecPath,
                    out strSummary,
                    out strError);
                if (nRet == -1)
                {
                    strSummary = "获取书目摘要时出错: " + strError;
                    task.State = "error";
                }
                else
                    task.State = "finish";

                this.Container.AsyncFillItemSummary(task.ChargingTask,
                    strSummary,
                    task.State != "error");

                if (task.State == "finish")
                    break;
            }
        }
Ejemplo n.º 6
0
 public void RemoveTask(SummaryTask task, bool bLock = true)
 {
     if (bLock == true)
     {
         if (this.m_lock.TryEnterWriteLock(m_nLockTimeout) == false)
             throw new LockException("锁定尝试中超时");
     }
     try
     {
         this._tasks.Remove(task);
     }
     finally
     {
         if (bLock == true)
             this.m_lock.ExitWriteLock();
     }
 }
Ejemplo n.º 7
0
        // 加入一个任务到列表中
        public void AddTask(SummaryTask task)
        {
            task.State = "";   // 表示等待处理
            if (this.m_lock.TryEnterWriteLock(500) == false)   // m_nLockTimeout
                throw new LockException("锁定尝试中超时");
            try
            {
                this._tasks.Add(task);
            }
            finally
            {
                this.m_lock.ExitWriteLock();
            }

            if (this.Stopped == true)
                this.BeginThread();

            // 触发任务开始执行
            this.Activate();
        }