/**Initial the capture threads and dispens threads according to the thread environment.*/ private void initPrimaryThreads() { for (int i = 0; i < sessionNum; i++) { CaptureThreadEnv tmpCaptureThreadEnv = new CaptureThreadEnv(); setCaptureThreadEnv(tmpCaptureThreadEnv, i); CaptureThread captureThread = new CaptureThread(tmpCaptureThreadEnv); captureThreadList.Add(captureThread); ParseThreadEnv tmpParseThreadEnv = new ParseThreadEnv(); setParseThreadEnv(tmpParseThreadEnv, i); ParseThread parseThread = new ParseThread(tmpParseThreadEnv); parseThreadList.Add(parseThread); } MergeThreadEnv tmpMergeThreadEvn = new MergeThreadEnv(); setMergeThreadEnv(tmpMergeThreadEvn); mergeThread = new MergeThread(tmpMergeThreadEvn); AscanUIThreadEnv tmpAscanUIThreadEnv = new AscanUIThreadEnv(); setAscanUIThreadEnv(tmpAscanUIThreadEnv); AscanUIThread = new AscanUIThread(tmpAscanUIThreadEnv); MeasureUIThreadEnv tmpMeasureUIThreadEnv = new MeasureUIThreadEnv(); setMeasureUIThreadEnv(tmpMeasureUIThreadEnv); measureUIThread = new MeasureUIThread(tmpMeasureUIThreadEnv); }
/** * Set the enviroment of the merge thread. * @param thrdEnv the merge environment to be set * @return thrdEnv a merge thread environment whose paraments are set */ private void setMergeThreadEnv(MergeThreadEnv threadEnv) { threadEnv.init = threadHandClaspInit; threadEnv.clean = threadHandClaspCleanup; threadEnv.status = ThreadCondition.created; threadEnv.mergeInList = queueManager.mergeInList; threadEnv.measureQueue = queueManager.measurementQueue; }
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; }