コード例 #1
0
ファイル: CaptureThread2.cs プロジェクト: zjyu1/ASCAN
        //Construct
        public CaptureThread2(CaptureThreadEnv2 env)
        {
            //inputed board id, used by DAQ
            boardId = env.boardId;

            //share all thread's init and clean Rendezvous
            init  = env.init;
            clean = env.clean;

            state = ThreadState.Unstarted;

            //share inputs queue and queue lock instance
            outQueue     = env.captureOutQueueAbstract.queue;
            outQueueLock = env.captureOutQueueAbstract.queueLock;

            //quit is false
            quit = false;

            //creat thread and go run
            thread = new Thread(captureFunc2);
            thread.IsBackground = true;
            thread.Start();

            //thread state flag update
            state = ThreadState.Running;
        }
コード例 #2
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;
        }
コード例 #3
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;
        }
コード例 #4
0
        public ThreadManager(int sessionNum, QueueManager queueManager)
        {
            this.sessionNum   = sessionNum;
            this.queueManager = queueManager;

            threadHandClaspInit    = new ThreadHandClasp(sessionNum * 2 + 2);
            threadHandClaspCleanup = new ThreadHandClasp(sessionNum * 2 + 2);

            captureThreadList = new List <CaptureThread>(sessionNum);
            parseThreadList   = new List <ParseThread>(sessionNum);

            initPrimaryThreads();
        }
コード例 #5
0
        public UIThread(UIThreadEnv tmpEnv)
        {
            init        = tmpEnv.init;
            clean       = tmpEnv.clean;
            status      = tmpEnv.status;
            ascanInList = tmpEnv.ascanInList;

            this.sessionsAttrs = tmpEnv.sessionsAttrs;
            ascanQueueElement  = new AscanQueueElement();

            thread = new Thread(UIFunc);
            thread.IsBackground = true;
        }
コード例 #6
0
ファイル: AscanUIThread.cs プロジェクト: zjyu1/ASCAN
        public AscanUIThread(AscanUIThreadEnv tmpEnv)
        {
            init        = tmpEnv.init;
            clean       = tmpEnv.clean;
            status      = tmpEnv.status;
            ascanInList = tmpEnv.ascanInList;

            ascanQueueElement = new AscanQueueElement();
            //timer = new System.Windows.Forms.Timer();
            //timer.Interval = ConstParameter.AscanTimerInterval;
            //timer.Tick += new EventHandler(AscanUIFunc);
            thread = new Thread(AscanUIFunc);
            thread.IsBackground = true;
        }
コード例 #7
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;
        }
コード例 #8
0
        public void Clear()
        {
            threadHandClaspInit    = null;
            threadHandClaspCleanup = null;

            captureThreadList.Clear();
            captureThreadList = null;

            parseThreadList.Clear();
            parseThreadList = null;

            mergeThread = null;

            AscanUIThread = null;

            measureUIThread = null;
            System.GC.Collect();
        }
コード例 #9
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);
        }