Esempio n. 1
0
        public void Start(int priority)
        {
            if (m_ExecutionThread != null)
            {
                throw new InvalidOperationException("This active object is already started. The Start method can only be invoked once.");
            }

            // Note: We use the datatype int for the priority since uint is not CLS compliant
            if (priority < 0)
            {
                throw new ArgumentException("The priority of an Active Object cannot be negative.", "priority");
            }
            m_Priority = priority;
            // TODO: Leverage the priority
            m_ExecutionThread = Threading.ThreadFactory.GetThread(0, new ThreadStart(this.DoEventLoop));
            m_ExecutionThread.Start();
        }