Example #1
0
        void _worker_DoWork(object sender, DoWorkEventArgs e)
        {
            while (!_scanWorker.CancellationPending)
            {
                try
                {
                    if (RunMode == RunModeType.Normal)
                    {
                        lock (StaticActionList)
                        {
                            if (StaticActionList != null)
                            {
                                TaskQueueObject queueObj = null;
                                TaskQueues.TryDequeue(out queueObj);

                                if (queueObj != null)
                                {
                                    foreach (Robot_Actions action in StaticActionList)
                                    {
                                        //检查是否符合条件
                                        if (IsAcceptRun(queueObj, action))
                                        {
                                            //发送指令序列
                                            RunAction(action, DBInstance.GetSteps(action.Id));
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    System.Console.WriteLine(ex.ToString());
                }

                try
                {
                    Thread.Sleep(15);
                }
                catch (Exception ex) { }
            }
        }