Пример #1
0
        private void _TryToPullServiceObject(IExecutive exec, object obj)
        {
            if (m_input.Connector == null)
            {
                return;
            }
            object serviceObject = m_input.OwnerPeek(null);

            if (serviceObject == null)
            {
                return;
            }
            lock (this){
                if (m_pending)
                {
                    return;
                }
                if (RequiresAsyncEvents)
                {
                    m_pending = true;
                }
            }
            if (OnCanWeProcessServiceObject(this, serviceObject))
            {
                serviceObject = m_input.OwnerTake(null);
                OnPreCommencementSetup(this, serviceObject);
                m_pending = false;
                Process(serviceObject);
            }
        }