public CellIdCollector(Interfaces.ICellStorage storage, int dueTime, int period, bool alwaysOn)
        {
            //m_StopThread = false;
            //m_CurrentCellid = string.Empty;
            m_CellCollection = new Dictionary <string, GeoLocation>();
            m_Lock           = new object();
            m_DueTime        = dueTime;
            m_Period         = period;
            m_Storage        = storage;
            m_AlwaysOn       = alwaysOn;

            if (m_AlwaysOn)
            {
                //System.Threading.TimerCallback tcb = CellCollector;
                //m_Timer = new System.Threading.Timer(tcb, new object(), System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite);
                m_Thread      = new Thread(CellCollectorThread);
                m_Thread.Name = "CellCollectorThread";

                //m_Thread.IsBackground = true;
            }
            else
            {
                m_Timer                = new LargeIntervalTimer();
                m_Timer.OneShot        = false;                                     //run forever
                m_Timer.FirstEventTime = DateTime.Now.AddMilliseconds(m_DueTime);   //start in x seconds
                m_Timer.Interval       = TimeSpan.FromMilliseconds(m_Period);
                m_Timer.Tick          += Timer_Tick;
            }
        }
 public CellIdCollector(Interfaces.ICellStorage storage, bool alwaysOn)
     : this(storage, DUE_TIME, PERIOD, alwaysOn)
 {
 }
 //Default values : DueTime = 10, Period = 2000
 public CellIdCollector(Interfaces.ICellStorage storage)
     : this(storage, DUE_TIME, PERIOD, false)
 {
 }