/// <summary>
        /// 在主线程中运行的流程测试完成事件响应函数
        /// </summary>
        private void FlowCompleteHandler()
        {
            StopFlowTimer();
            FlowControl.Instance.FlowStatus = FlowControl.FLOW_STATUS_COMPLETE;

            if (FlowControl.Instance.FlowResult == FlowControl.FLOW_RESULT_INIT)
            {
                bool pass = true;
                foreach (FlowItem flowItem in FlowControl.Instance.FlowItemList)
                {
                    if (!flowItem.Item.Property.Disable && !flowItem.IsAuxiliaryItem() && !flowItem.IsPass())
                    {
                        pass = false;
                        break;
                    }
                }

                FlowControl.Instance.FlowResult = pass ? FlowControl.FLOW_RESULT_PASS : FlowControl.FLOW_RESULT_FAIL;
            }
            else if (FlowControl.Instance.FlowResult == FlowControl.FLOW_RESULT_EXCEPTION)
            {
                //复位设备
                string resp;
                EquipmentCmd.Instance.SendCommand(CommonString.CMD_RESET, String.Empty, out resp);
            }

            ShowResult();

            if (FlowControl.Instance.FlowResult == FlowControl.FLOW_RESULT_FAIL)
            {
                Statistic.Instance.IncreaseFailNum();
            }
            Statistic.Instance.IncreaseTotalNum();

            UpdateStatisticInfo();
            Statistic.Instance.Save();

            if (FlowControl.Instance.FlowCompleteReason != FlowControl.FLOW_COMPLETE_STOP)
            {
                ResultRecord.Record(AppInfo.PhoneInfo.SN);

                if (0 == NetUtil.GetStationIndex())
                {
                    CompleteHandler(0);
                }
                else
                {
                    LiteDataClient.Instance.SendCompleteFlag(NetUtil.GetStationIndex());
                }
            }

            TimeLog.Save();

            DataReport.Save();
        }