コード例 #1
0
        public CaptureThread(CaptureThreadEnv tmpEnv)
        {
            boardId     = (uint)tmpEnv.boardId;
            init        = tmpEnv.init;
            clean       = tmpEnv.clean;
            status      = tmpEnv.status;
            outputQueue = tmpEnv.captureOutQueue;
            pkgCounter  = 0;

            thread = new Thread(captureFunc);
            thread.IsBackground = true;
        }
コード例 #2
0
        public MergeThread(MergeThreadEnv tmpEnv)
        {
            init         = tmpEnv.init;
            clean        = tmpEnv.clean;
            status       = tmpEnv.status;
            mergeInList  = tmpEnv.mergeInList;
            measureQueue = tmpEnv.measureQueue;

            measureQueueElement = new MeasureQueueElement();

            thread = new Thread(mergeFunc);
            thread.IsBackground = true;
        }
コード例 #3
0
        public MeasureUIThread(MeasureUIThreadEnv tmpEnv)
        {
            init         = tmpEnv.init;
            clean        = tmpEnv.clean;
            status       = tmpEnv.status;
            measureQueue = tmpEnv.measureQueue;

            measureQueueElement = new MeasureQueueElement();

            thread = new Thread(MeasureUIFunc);
            thread.IsBackground = true;

            //timer.Elapsed += new System.Timers.ElapsedEventHandler(UpdateAUT);
            timer.AutoReset = true;
        }
コード例 #4
0
ファイル: QueueInfo.cs プロジェクト: zjyu1/ASCAN
        public void Clear()
        {
            sessionNum = 0;

            captureOutList.Clear();
            captureOutList = null;

            ascanList.Clear();
            ascanList = null;

            mergeInList.Clear();
            mergeInList = null;

            measurementQueue = null;

            semaphorForMerge = null;
            semaphorForAscan = null;

            System.GC.Collect();
        }
コード例 #5
0
ファイル: ParseThread.cs プロジェクト: zjyu1/ASCAN
        public ParseThread(ParseThreadEnv tmpEnv)
        {
            timer.Elapsed  += new System.Timers.ElapsedEventHandler(UpdateAscan);
            timer.AutoReset = true;

            init         = tmpEnv.init;
            clean        = tmpEnv.clean;
            status       = tmpEnv.status;
            inputQueue   = tmpEnv.captureOutQueue;
            ascanQueue   = tmpEnv.ascanQueue;
            mergeInQueue = tmpEnv.mergeInQueue;

            mergeInQueueElement = new MergeInQueueElement();
            ascanQueueElement   = new AscanQueueElement();
            boardStatusPacket   = new BoardStatusSetPacket();

            thread = new Thread(parseFunc);
            thread.IsBackground = true;

            updateCallBack = new updateDelegate(FormList.MDIChild.updateAscanbytimer);
        }
コード例 #6
0
ファイル: QueueInfo.cs プロジェクト: zjyu1/ASCAN
        public QueueManager(int sessionNum)
        {
            this.sessionNum = sessionNum;
            captureOutList  = new List <RingBufferQueue <CaptureOutQueueElement> >(this.sessionNum);
            ascanList       = new List <RingBufferQueue <AscanQueueElement> >(this.sessionNum);
            mergeInList     = new List <RingBufferQueue <MergeInQueueElement> >(this.sessionNum);

            semaphorForMerge = new Semaphore(0, SEMAPHORMAXCOUNT);
            semaphorForAscan = new Semaphore(0, SEMAPHORMAXCOUNT);

            for (int i = 0; i < this.sessionNum; i++)
            {
                RingBufferQueue <CaptureOutQueueElement> captureOutQueue = new RingBufferQueue <CaptureOutQueueElement>();
                captureOutList.Add(captureOutQueue);

                RingBufferQueue <AscanQueueElement> ascanQueue = new RingBufferQueue <AscanQueueElement>(semaphorForAscan);
                ascanList.Add(ascanQueue);

                RingBufferQueue <MergeInQueueElement> mergeInQueue = new RingBufferQueue <MergeInQueueElement>(semaphorForMerge);
                mergeInList.Add(mergeInQueue);
            }

            measurementQueue = new RingBufferQueue <MeasureQueueElement>();
        }