コード例 #1
0
        public IPipeline <TOut> CreatePipeline()
        {
            _disruptor = new Disruptor <StepPayload <TOut> >(() => new StepPayload <TOut>(), 1024, TaskScheduler.Default /*, ProducerType.Multi, new BlockingSpinWaitWaitStrategy()*/);
            var handlerGroup = _disruptor.HandleEventsWithWorkerPool(_steps.First());

            for (int i = 1; i < _steps.Count; ++i)
            {
                var step            = _steps[i];
                var makeStepToArray = new IWorkHandler <StepPayload <TOut> >[] { step };
                handlerGroup = handlerGroup.HandleEventsWithWorkerPool(makeStepToArray);
            }
            var setResultHandler        = new SetResultHandler <TOut>();
            var setResultHandlerToArray = new IWorkHandler <StepPayload <TOut> >[] { setResultHandler };

            handlerGroup.HandleEventsWithWorkerPool(setResultHandlerToArray);

            _disruptor.Start();
            return(this);
        }
コード例 #2
0
ファイル: LogHelper.cs プロジェクト: zhangzheng1205/Finern
        /// <summary>
        /// 显示测试结果
        /// </summary>
        /// <param name="aResults">产品结果数组:0-NULL, 1-PASS, 2-FAIL</param>
        /// <param name="aShowAllNum">如果aResult[]长度小于MaxUUT,是否显示多余的UUT结果</param>
        public void SetResult(int[] aResults, bool aShowAllNum = false)
        {
            if (!this._rtb.IsHandleCreated)
            {
                return;
            }
            if (this._rtb.InvokeRequired)
            {
                SetResultHandler d = new SetResultHandler(SetResult);
                this._rtb.Invoke(d, new object[2] {
                    aResults, aShowAllNum
                });
                d = null;
            }
            else
            {
                lock (_lockThis)
                {
                    if (aResults.Length > UUTNum.Length)
                    {
                        throw new Exception("Result数量大于可显示UUT数量!");
                    }

                    for (int count = 0; count < UUTNum.Length; count++)
                    {
                        if (count == aResults.Length)
                        {
                            if (!aShowAllNum)
                            {
                                break;
                            }
                        }

                        int q_len = this._rtb.Text.Length;
                        this._rtb.AppendText(UUTNum[count]);
                        int h_len = this._rtb.Text.Length;

                        this._rtb.Select(q_len, h_len);
                        if (count > aResults.Length - 1)
                        {
                            this._rtb.SelectionColor = Color.LightGray;
                            this._rtb.SelectionFont  = new System.Drawing.Font("宋体", 48.0f, FontStyle.Bold);
                        }
                        else
                        {
                            switch (aResults[count])
                            {
                            case 0:
                                this._rtb.SelectionColor = Color.LightGray;
                                this._rtb.SelectionFont  = new System.Drawing.Font("宋体", 48.0f, FontStyle.Bold);
                                break;

                            case 1:
                                this._rtb.SelectionColor = Color.Green;
                                this._rtb.SelectionFont  = new System.Drawing.Font("宋体", 48.0f, FontStyle.Bold);
                                break;

                            case 2:
                                this._rtb.SelectionColor = Color.Red;
                                this._rtb.SelectionFont  = new System.Drawing.Font("宋体", 48.0f, FontStyle.Bold);
                                break;

                            default:
                                break;
                            }
                        }
                    }

                    this._rtb.AppendText("\r\n");
                    this._rtb.SelectionStart = this._rtb.TextLength;
                    this._rtb.ScrollToCaret();
                }
            }
        }