public PMSThread() { m_pParent = null; m_nState = PMS_THREAD_STATE_IDLE; m_nThreadIndex = -1; m_PMSProcess = null; }
public void Init(object pParent, PMSMixedModeSharp PMSMix, int nThreadIdx, int nStartLine, int nIntv) { m_pParent = pParent; m_nThreadIndex = nThreadIdx; m_nState = PMS_THREAD_STATE_READY; m_nStartLine = nStartLine; m_nInterv = nIntv; m_PMSProcess = PMSMix; }
public bool Create(object pParentWnd, PMSMixedModeSharp PMSMix, int nProcessorNum) { m_nRunningThreadNum = 0; m_nProcessNum = nProcessorNum; m_ppPMSThread = new PMSThread[nProcessorNum]; m_thdPMS = new Thread[nProcessorNum]; m_EwhThdEvent = new EventWaitHandle[nProcessorNum]; m_PMSMixed = (PMSMixedModeSharp)PMSMix; for (int i = 0; i < m_nProcessNum; i++) { m_ppPMSThread[i] = new PMSThread(); m_EwhThdEvent[i] = new EventWaitHandle(false, EventResetMode.ManualReset, "ThreadEvent." + i.ToString()); m_thdPMS[i] = new Thread(ThreadRun); m_thdPMS[i].IsBackground = true; m_thdPMS[i].Priority = ThreadPriority.Normal; m_bThreadRun = true; m_thdPMS[i].Start(i); m_ppPMSThread[i].Init(this, PMSMix, i, 0, 0); } return(true); }