예제 #1
0
        protected override void DoStart()
        {
            try
            {
                m_CPULoadFactor       = 1d;
                m_SubInstrCallerCount = 0;
                m_SubInstr.Start();

                m_SubLog.Start();

                m_Locker.Start();

                m_WaitEvent = new AutoResetEvent(false);

                m_Thread      = new Thread(threadSpin);
                m_Thread.Name = THREAD_NAME;
                m_Thread.Start();
            }
            catch
            {
                if (m_Locker.Running)
                {
                    try { m_Locker.WaitForCompleteStop(); } catch { }
                }
                if (m_SubLog.Running)
                {
                    try { m_SubLog.WaitForCompleteStop(); } catch { }
                }
                if (m_SubInstr.Running)
                {
                    try { m_SubInstr.WaitForCompleteStop(); } catch { }
                }
                AbortStart();
                throw;
            }
        }
예제 #2
0
 protected override void DoWaitForCompleteStop()
 {
     m_Daemon.WaitForCompleteStop();
     base.DoWaitForCompleteStop();
 }