public Trigger CreateTrigger()
		{
			Interlocked.Increment(ref _outstandingTriggers);
			SingleEntryGate triggerGate = new SingleEntryGate();

			return new Trigger(() => {
				if (triggerGate.TryEnter())
					HandleTriggerFired();
			});
		}
        public Trigger CreateTrigger()
        {
            Interlocked.Increment(ref _outstandingTriggers);
            SingleEntryGate triggerGate = new SingleEntryGate();

            return(new Trigger(() => {
                if (triggerGate.TryEnter())
                {
                    HandleTriggerFired();
                }
            }));
        }
		public TriggerListener()
		{
			_continuationGate = new SingleEntryGate();
			_activateTrigger = CreateTrigger();
			_setContinuationTrigger = CreateTrigger();
		}
 public TriggerListener()
 {
     _continuationGate       = new SingleEntryGate();
     _activateTrigger        = CreateTrigger();
     _setContinuationTrigger = CreateTrigger();
 }
		protected ControllerBase()
		{
			_executeGate = new SingleEntryGate();
		}